0

私は自分の小さなウェブサイトを持っていて、sha1 で暗号化しています。今、それを SMF フォーラムに接続しようとしていますが、sha1 コードは同じではありませんか?

私のコード

$password = "thisisatestpass";
$encrypted_password=sha1($password);
echo $encrypted_password; //03d858ce5f3b29b153b0392f196cff6f6e8684d0

SMF: 78481983d348ce4fbfabaccbb59af8ea95471f0c

4

5 に答える 5

1

使用されているソルトを見つけてから、ハッシュを試みる必要があります

sha1($the_salt.$password);

SMF が使用するテーブルで、phpMyAdmin を使用してハッシュを探してみてください。また、smf サポート フォーラムで見たものによると、フックとの代替統合を使用すると、より堅牢になるはずです (以前のバージョンでハッシュに対して行われた変更を念頭に置いてください)。

于 2012-08-19T16:16:00.730 に答える
1

このスレッドによると、SMF は sha1 を介してパスワードを渡す前に、小文字のユーザー名でパスワードをソルトします。

試すsha1(strtolower($your_username) . $password);

于 2012-08-19T15:49:46.773 に答える
0

SMF 2.0.8 のソース コード (Profile-Modify.php) を見ると、次のようにパスワードが生成されていることがわかります。

// Go then.
$passwd = sha1(strtolower($cur_profile['member_name']) . un_htmlspecialchars($_POST['passwrd1']));

100% 正しい結果を得るには、 SMFの un_htmlspecialchars()関数が必要であることに注意してください。

于 2014-07-25T08:45:25.307 に答える
0

私が知っているように、SMF はハッシュにソルトを使用します。それで、データベースでソルトを探してみてください。

于 2012-08-19T15:48:55.760 に答える
-1

わかりました。これを行うのに SALT は必要ありません。必要なのはユーザー名とパスワードだけです。

PHP コードは次のようになります。

$username = "name";
$password = "pass";

$login = sha1($username.$password);

私はこれを求めましたが、多くの方法を試すのに時間が必要でした。その後、これが機能しました。とにかくみんなThx :)

于 2012-09-08T15:49:15.460 に答える