android - PBKDF2 与 Android 上的 SHA256

标签 android encryption sha256 pbkdf2

我想使用 PBKDF2 和 SHA256 生成密码的派生散列。使用此 SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1") 这项工作但它使用 SHA1。 使用 SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256")(或使用 spongycaSTLe 时使用 SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256","SC"))我遇到错误。

如何使用 PBKDF2WithHmacSHA256 成功生成哈希?

最佳答案

如果您使用 1.47 或更高版本的 SpongyCaSTLe,您可以直接调用 PBKDF2WithHmacSHA256:

PKCS5S2ParametersGenerator generator = new PKCS5S2ParametersGenerator(new SHA256Digest());
generator.init(PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(password), salt, iterations);
KeyParameter key = (KeyParameter)generator.generateDerivedMacParameters(keySizeInBits);

在 BC < 1.47 版本中,您无法指定 SHA256 摘要,它默认为 SHA1。

关于android - PBKDF2 与 Android 上的 SHA256,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11628256/

相关文章:

android - 需要使用YouTube API授权Android应用的指南

android - 是否可以从 adb shell/am 命令行模拟 GCM 接收?我收到一个错误

Java加密: which method can get me a shorter message?

javascript - 为什么散列密码与数据库中的值不匹配?

java - 如何多次哈希并在每轮中连接一个字符串

python - 是否保存存储使用 sha256_crypt 加密但没有额外盐的密码

android - 如何从 Android 的 C++ 项目创建库(.so 或 .a 文件)?

android - 无法使用模拟器,使用 react-native 和 expo

java - 无法将加密格式从 Java 复制到 PHP

javascript - 使用 PHP (openssl_encrypt) 发出加密,然后使用 JS (CryptoJS) 解密