我正试着在安卓系统上使用Luke Joshua Park SecureCompatibleEncryptionExamples。我的问题是,PBKDF2WithHmacSHA256不适用于低于API26的安卓系统。有什么办法解决这个问题吗?
发布于 2018-06-29 09:04:30
安卓在API26之前不支持PBKDF2withHmacSHA256
,但老版本支持PBKDF2withHmacSHA1
。除非有特定的原因,您希望使用SHA256作为PBKDF2散列,否则更改这一点没有什么坏处。
通过调整PBKDF2_NAME
参数,可以相对容易地更改我的存储库中的算法。与PBKDF2一起使用SHA1仍然是安全的,所以您可以简单地调整:
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。
https://stackoverflow.com/questions/51092522
复制相似问题