8

Joomlaのカスタム登録コンポーネントを作成しようとしていますが、joomlaの正しいパスワード暗号化を作成する方法を誰かが知っているかどうか疑問に思っていました。Joomlaのパスワードは次のようになります:

fbae378704687625a410223a61c66eb1:VM6DwmVWHTwpquDq51ZXjWWADCIc93MR

md5(または何か)と一方向の暗号化はどれだと思いますか?同じ暗号化を作成するためのある種のphpコードを探しています。

乾杯

4

5 に答える 5

13
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword("yourpassword", $salt);
$password = $crypt.':'.$salt;

もう少し検索した後、私は私の答えを見つけました、あなたの助けをみんなに感謝します:)

編集:JUserHelperを呼び出す前にこの行を含める必要があることを言及するのを忘れました:

jimport('joomla.user.helper');

于 2010-04-28T06:04:56.713 に答える
12

joomlaフォーラムから、それが背後で起こっていることです:

  1. パスワードを生成する
  2. 32個のランダムな文字を生成します
  3. 1と2を連結します
  4. md5(3)
  5. ストア4:2

例:

  1. パスワードを生成します-「password」を使用します
  2. 32個のランダムな文字を生成します-「WnvTroeiBmd5bjGmmsVUnNjppadH7giK」を使用します
  3. 1と2を連結します-passwordWnvTroeiBmd5bjGmmsVUnNjppadH7giK
  4. md5(3)-3c57ebfec712312f30c3fd1981979f58
  5. ストア4:2-3c57ebfec712312f30c3fd1981979f58:WnvTroeiBmd5bjGmmsVUnNjppadH7giK
于 2011-04-26T10:51:12.783 に答える
2

パスワード自体を保存するのではなく、パスワードのハッシュを保存するための+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";
}
?>
于 2010-04-28T05:51:39.457 に答える
1

あなたはに行って、内の機能 /libraries/joomla/userを見ることができますbind()user.php

登録時に作成されたすべてのユーザーパスワードはここにあります。

于 2011-10-21T10:44:13.100 に答える
-1
  //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回復号化しました。

于 2010-04-28T05:47:30.250 に答える