我正在尝试在Android上使用Luke Joshua Park SecureCompatibleEncryptionExamples。我的问题是PBKDF2WithHmacSHA256在API 26以下不适用于Android。有什么方法可以解决此问题?
答案 0 :(得分:1)
Android在API 26之前不支持PBKDF2withHmacSHA256
,但在旧版本中确实支持PBKDF2withHmacSHA1
。除非有特定原因要使用SHA256作为PBKDF2哈希,否则更改它不会有任何危害。
通过调整PBKDF2_NAME
参数,可以相对容易地更改存储库中的算法。 SHA1仍可与PBKDF2一起安全使用,因此您只需调整以下内容即可:
private final static String PBKDF2_NAME = "PBKDF2WithHmacSHA256";
收件人:
private final static String PBKDF2_NAME = "PBKDF2WithHmacSHA1";
在您的Android代码和PHP更改中:
define("PBKDF2_NAME", "sha256");
收件人:
define("PBKDF2_NAME", "sha1");
还需要注意的是,如果您将其用作传输安全性,则不应这样做。您应该使用TLS。