iはthisチュートリアル暗号化された文字列は、私が読んで] [バイトを文字列に変換しようとすると、私は、文字列としてSQLデータベースで暗号化されたパスワードを格納する必要があります[]私はパスワードを暗号化する必要が
を使用していますバイトを私は問題がある、バイト[]は、元の暗号化されたバイト[]
byte[] encrypted = encryper.encrypte("pavel");
Log.i("info","encrypted : "+encrypted);
String pass = String.valueOf(encrypted);
byte[] passBytes = pass.getBytes();
Log.i("info","passBytes : "+passBytes);
Log.i("info","decrypted : "+encryper.decrypte(passBytes));
ログ
I/info: encrypted : [[email protected]
I/info: passBytes : [[email protected]
I/info: decrypted :
復号化方法
異なりますpublic String decrypte(byte[] text)
{
byte[] textDecrypted = new byte[0];
try {
cipher.init(Cipher.DECRYPT_MODE, myDesKey);
textDecrypted = cipher.doFinal(text);
Log.i("info","do final : "+textDecrypted);
}catch (InvalidKeyException e) {e.printStackTrace();
}catch (IllegalBlockSizeException e){e.printStackTrace();}
catch (BadPaddingException e){e.printStackTrace();}
return new String(textDecrypted);
}
しかし、私は、元のバイトを入れた場合(バイト[]はテキスト) {
byte[] textDecrypted = new byte[0];
try {
cipher.init(Cipher.DECRYPT_MODE, myDesKey);
textDecrypted = cipher.doFinal(text);
Log.i("info","do final : "+textDecrypted);
}catch (InvalidKeyException e) {e.printStackTrace();
}catch (IllegalBlockSizeException e){e.printStackTrace();}
catch (BadPaddingException e){e.printStackTrace();}
return new String(textDecrypted);
}
はなく、[]すべての仕事
encryper.decrypte(encrypted)
要件について:何かを学ぶために仕事をしている/楽しみのために:素晴らしい!暗号化されたDESをデータベースに暗号化して保管することを計画している場合は、しないでください。データベースにアクセスできる攻撃者は、パスワードを取得できます。代わりに、意図的に検索を遅くする方法で** salted **ハッシュを保存してください。詳細については、https://nakedsecurity.sophos.com/2013/11/20/serious-security-how-to-store-your-users-passwords-safely/ –