Joomlaのカスタム登録コンポーネントを作成しようとしていますが、joomlaの正しいパスワード暗号化を作成する方法を誰かが知っているかどうか疑問に思っていました。Joomlaのパスワードは次のようになります:
fbae378704687625a410223a61c66eb1:VM6DwmVWHTwpquDq51ZXjWWADCIc93MR
md5(または何か)と一方向の暗号化はどれだと思いますか?同じ暗号化を作成するためのある種のphpコードを探しています。
乾杯
Joomlaのカスタム登録コンポーネントを作成しようとしていますが、joomlaの正しいパスワード暗号化を作成する方法を誰かが知っているかどうか疑問に思っていました。Joomlaのパスワードは次のようになります:
fbae378704687625a410223a61c66eb1:VM6DwmVWHTwpquDq51ZXjWWADCIc93MR
md5(または何か)と一方向の暗号化はどれだと思いますか?同じ暗号化を作成するためのある種のphpコードを探しています。
乾杯
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword("yourpassword", $salt);
$password = $crypt.':'.$salt;
もう少し検索した後、私は私の答えを見つけました、あなたの助けをみんなに感謝します:)
編集:JUserHelperを呼び出す前にこの行を含める必要があることを言及するのを忘れました:
jimport('joomla.user.helper');
joomlaフォーラムから、それが背後で起こっていることです:
例:
パスワード自体を保存するのではなく、パスワードのハッシュを保存するための+1。
事前計算攻撃から保護するには、ランダムソルトを使用する必要があります。さらに、PHPでサポートされていると思うSHA-256などのより強力なハッシュアルゴリズムを使用することをお勧めします。詳細については、PHPパスワードの安全なハッシュとソルトを参照してください。
PHPはわかりませんが、ほとんどの言語にはmd5をサポートするライブラリがあり、(およびその他のハッシュアルゴリズム)PHPもサポートしているようです。私はこれを見つけました:
string md5 ( string $str [, bool $raw_output = false ] )
»RSADataSecurity、Inc.のMD5メッセージダイジェストアルゴリズムを使用してstrのMD5ハッシュを計算し、そのハッシュを返します。
次に例を示します。
<?php
$password = 'apple';
if (md5($password) === '1f3870be274f6c49b3e31a0c6728957f') {
echo "Password correct";
}
?>
あなたはに行って、内の機能 /libraries/joomla/user
を見ることができますbind()
user.php
登録時に作成されたすべてのユーザーパスワードはここにあります。
//function to encrypt the string
function encode5t($str)
{
for($i=0; $i<5;$i++)
{
$str=strrev(base64_encode($str)); //apply base64 first and then reverse the string
}
return $str;
}
//function to decrypt the string
function decode5t($str)
{
for($i=0; $i<5;$i++)
{
$str=base64_decode(strrev($str)); //apply base64 first and then reverse the string}
}
return $str;
}
この関数では、base64_encodeを使用して文字列を5回暗号化し、strrev()を使用して文字列を反転し、最初に文字列を反転してからbase64_decode()を適用して5回復号化しました。