0

パスワードは共有設定に保存されるため、アプリケーションのパスワードの暗号化に取り組んでいます

私はbcryptを見つけて、それについて多くの良いことを読みましたが、動作させることができません

jBCryptを使用しています。私は指示に従い、これをテストとして行いました

String hashed = BCrypt.hashpw("dog", BCrypt.gensalt(12));
String candidate = BCrypt.hashpw("dog", BCrypt.gensalt(12));
if (BCrypt.checkpw(candidate, hashed)){
    Toast.makeText(Loader.this, "equals", Toast.LENGTH_LONG).show();
}else{
    Toast.makeText(Loader.this, "don't match?", Toast.LENGTH_LONG).show();
}

ただし、アプリケーションを実行するたびに、表示されるトーストが一致しませんか? したがって、ハッシュ化されたパスワードを共有設定に記録し、それをユーザー入力と比較すると、明らかに毎回異なるハッシュが与えられているため、毎回間違っていると表示されます。どうすればこれを使用できますか?

4

1 に答える 1

1

documentationによると、プレーンテキストのパスワードを最初の引数としてBCrypt.checkpw()受け取ります。したがって、次のようになります。

String hashed = BCrypt.hashpw("dog", BCrypt.gensalt(12));
String candidate = "dog";

if (BCrypt.checkpw(candidate, hashed)) {
    Toast.makeText(Loader.this, "equals", Toast.LENGTH_LONG).show();
} else {
    Toast.makeText(Loader.this, "doesn't match?", Toast.LENGTH_LONG).show();
}
于 2011-09-29T16:30:13.580 に答える