java - 用户登录,密码 md5 加密 问题
伊谢尔伦
伊谢尔伦 2017-04-17 14:45:14
0
9
1060
小弟需要写一个用户登录的模块,现在已经完成了...但是由于密码是明文存在数据库的,

现在需要改为md5 加密,然后登录,希望给为前辈给点指导,最好是有源码的,谢谢。
(关于为什么用md5,之前也了解过一点,登录加密的用这最好。如果你们有更好的加密方式,也欢迎提出来)。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(9)
伊谢尔伦
$salt = sha1(uniqid(mt_rand(), true));
$pwd_db = sha1($salt.sha1($pwd_user));

$salt は、ユーザーの登録時に生成されるランダムなソルト値です。
$pwd_db は、データベースに保存されるソルト付きパスワード ハッシュです。
$salt と $pwd_db は両方ともユーザー テーブルに保存されます。
ここで、:
uniqid にはプレフィックス ( mt_rand)、最後にエントロピー (true) が付き、現在の時間のマイクロ秒数に基づく一意の数値です。
mt_rand は、より適切な乱数を生成するために使用されます。
sha1 によって生成される文字列の長さは次のとおりです。 40 ビット、フィールド タイプは char(40) に設定できます。

いいねを押す +0
黄舟
  1. ソルトを追加する
    現在、主流のユーザー パスワード暗号化にはソルトを追加する必要があります。これは、MD5 のレインボー テーブルにはすでに 11 桁未満の「弱いパスワード」の大部分が含まれているためです。
    そして多くの大規模 Web サイトのデータ漏洩により、md5 が爆発する危険性はさらに高まります。実際、md5 のハッシュを使用して、個人が頻繁に使用する Web サイトを見つけることができます。

  2. 疑似コード:

    md5(パスワード + ソルト)
いいねを押す +0
巴扎黑

Java には md5 関連のパッケージはありませんか?とにかく、PHP は 1 つの関数 md5()^﹏^

だけでそれを行うことができます。
いいねを押す +0
刘奇

md5 の使用に問題はなく、業界で一般的に使用されているソリューションでもあります。
注意すべき点の 1 つは、パスワードを md5 暗号化する前にソルトを追加するのが最善であるということです。ソルトを追加しないと、弱いパスワードのセキュリティが非常に低くなります。

いいねを押す +0
巴扎黑

Web アプリケーションの安全なログイン認証を見てください。これは C# ですが、Java も同様です。

いいねを押す +0
洪涛

投稿者は、データベースに平文を保存すべきではないとだけ述べています。データベースにデータを保存するには暗号化方式を使用するだけで十分ではないでしょうか。
暗号化方式はフロントエンドとバックエンドの両方で使用できます。

いいねを押す +0
洪涛

savokiss が言ったように、md5(md5(password)+salt) はすでにより良い解決策です。
より安全性を高めるには、Bcrypt などを検討してください。
ソルトの文字列を単に繰り返すのではなく、ID、ユーザー名、タイムスタンプなどを使用することをお勧めします。

いいねを押す +0
左手右手慢动作

塩を加えます~塩を加えます~塩を加えます~重要なことを3回言います。

いいねを押す +0
黄舟

dz で使用:

md5(md5(パスワード)+salt)

ソルトはソルトです。グローバルに同じにすることも、ユーザーごとに一意にすることもできます。

md5 は可逆的ではありませんが、辞書を使用すると徹底的に解析できるため、単層 md5 を徹底的に解読するのは非常に簡単です。ただし、ソルトを追加すると、暗号化されたパスワードしか分からなくなり、ソルトは役に立ちません。 /p>

他の暗号化方法については、md5 をクラックする Web サイトを確認してください。Web サイト名は省略します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート