MySQL をテストするために、Java で銀行口座プログラムを作成しています。これまでのところ、このプログラムでは、氏名、パスワード、ユーザー ID、および口座残高 (各ユーザーがデータベースで 1 行を占める) を使用して新しいメンバーを作成できます。ユーザー ID とパスワードを入力するだけでログインできるようにするにはどうすればよいでしょうか? ありがとう!
質問する
63 次
1 に答える
0
指定された資格情報アクセスをデータベースの値と比較する必要があります。
データベースが盗まれた場合の問題を防ぐために、ハッシュ化されたパスワードを (salt を使用して) 保存することをお勧めします。
ハッシュをソルトするという考えは重要です。安全ではないことが知られている md5 などのハッシュ関数がありますが、これを行うと
password = "123456"
salt = "someString" //Anything you want, but it must be the same all the time
saltedPassword = password + "-" + salt
hashedSaltedPassword = yourHashFunction(saltedPassword)
次に、ハッシュ関数が壊れている場合、攻撃者が取得するパスワードは実際のパスワードではない「123456-someString」になるため、hashedSaltedPassword の方が安全です。
ハッシュ関数フィールドは非常に興味深いものです。調べることを強くお勧めします。とにかく、SHA 関数を調べることから始めてください。
いずれにせよ、Google で少し検索する必要があるようです :)
于 2013-04-20T23:56:37.813 に答える