0

スクリプトはパスワードを暗号化することを想定しているため、レインボーテーブルを使用するのがはるかに難しくなり、サーバーを簡単にハッキングすることはできませんが、機能しないようですので、誰かが私を助けてくれることを願っています.

<?php

function enc($string){
    $salt = "randomsalt";
    $hash = sha1(md5($salt.$string)) . $md5($string) . sha1(md5(md5($string)));
    return $hash;   
}

echo enc('password');

?>
4

2 に答える 2

1

コメントを聞いてください。ただし、タイプミスもあります。

$md5($string)である必要がありますmd5($string)(これは変数ではなく$、前に a があってはなりません)。

ここで暗号化していないのは事実ですが、それは単なる命名法の問題です(ハッシュしているので、やりたいことです)...ただし、ソルトはおそらく固定文字列であってはなりません...本当に強力なハッシュが必要な場合は、ユーザーごとに異なる必要があります。この件についてはまだまだ言いたいことがたくさんあります(md5そしてSHA1、両方のレインボーテーブルが多すぎて実行するには速すぎるため、パスワードに最適なハッシュアルゴリズムではありません)が、ここここで bcrypt 情報を読むことができます.

于 2013-01-10T22:24:18.917 に答える
0
$md5( $string)

コードを壊します。$を削除します

すべてのユーザーに対して、bcrypt やさまざまなソルトなどを使用する必要があります。

于 2013-01-10T22:23:59.173 に答える