Android中的PBKDF2函数
Posted
技术标签:
【中文标题】Android中的PBKDF2函数【英文标题】:PBKDF2 function in Android 【发布时间】:2011-12-26 20:25:55 【问题描述】:是否有适用于 android 的 PBKDF2 实现。我正在尝试使用 PBKDF2 函数派生密钥。我找不到这样做的例子。
【问题讨论】:
【参考方案1】:迟到了,但很多 Android 设备都包含带有标准 SecretKeyFactory 的 PBKDF2。但是,很多人建议使用 Spongycastle 之类的东西来保证您可以使用该算法。
如果找不到,它会抛出异常
SecretKeyFactory keyFactory = null;
try
keyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
catch (NoSuchAlgorithmException e)
【讨论】:
以下文章包含一个使用 SecretKeyFactory 的 PBKDF 的示例方法:android-developers.blogspot.de/2013/02/…(请参阅“更加安全”部分)。 适用于 Android API 10+,如 developer.android.com/reference/javax/crypto/… 所记录的,供任何想知道的人使用【参考方案2】:免费选项是:
http://rtner.de/software/PBKDF2.html http://bouncycastle.org/(可能比某些 Android 捆绑的org.bouncycastle
更新)
http://www.unwesen.de/2011/06/12/encryption-on-android-bouncycastle/
https://github.com/rtyley/spongycastle#readme
如果商业组件是一个选项,请参阅例如http://www.chilkatsoft.com/java-encryption.asp(示例代码http://www.example-code.com/android/crypt2_pbkdf2.asp)。
另一种选择是使用javax.crypto
并自己实现它,尽管我不建议这样做...
【讨论】:
以上是关于Android中的PBKDF2函数的主要内容,如果未能解决你的问题,请参考以下文章
如何为 android api 8 (Froyo) 添加 PBKDF2WithHmacSHA1