私はログインとパスワードのユーザー出力を受け取り、この変数をハッシュ(ログインとパスワード)する1つのプログラムを作成しています。JavaでMD5をハッシュする?
私はログインからの出力をハッシュするときに動作しますが、ハッシュを試してみると、パスワードの出力は動作しません。
コード:
String login;
String password;
login = JOptionPane.showInputDialog("Login : ");
password = JOptionPane.showInputDialog("Password : ");
MessageDigest m;
try
{
m = MessageDigest.getInstance("MD5");
m.update(login.getBytes(),0,login.length());
m.update(password.getBytes(),0,password.length());
BigInteger login1 = new BigInteger(1, m.digest());
BigInteger password1 = new BigInteger(1, m.digest());
login = String.format("%1$032X", login1);
password = String.format("%1$032X", password1);
JOptionPane.showMessageDialog(null,"Login : " + login +
"\nPassword : " + password);
//System.out.println("login : "+ login);
//System.out.println("password : " + password);
}
出力:
login : E9CA9D798BA364DFF16C738D03AF6668
password : D41D8CD98F00B204E9800998ECF8427E
変数ログインは通常なりますが、ハッシング、私は変数パスワードを作りたい時にパスワードが常に同じ結果を行いますハッシュするときには常に別の結果が得られます。
PS:申し訳ありませんが、悪い英語、私の母国語です。
あなたは 'm.digest()'を連続して2回呼びます... –
私は同じものを使うことはできませんか?それとも新しいものを作る必要がありますか?私はすでに試していたので、うまくいきませんでした。たとえば、別のMessageDigestをm1という名前で作成すると、m1はハッシュするときm.digest()と同じ結果になります。 – Falion
パスワードハッシングにMD5を使用しないでください。暗号化されていません。代わりにbcryptのようなものを使用してください。 –