Is there PBKDF2 implementation for Android. I am trying to derive a key using PBKDF2 function. I couldn't find an example to do so.
Asked
Active
Viewed 1.7k times
2 Answers
17
Late to the party, but a lot of Android devices DO include PBKDF2 with the standard SecretKeyFactory. However, a lot of people recommend using something like Spongycastle to guarantee that you'll have that algorithm available.
It does throw an exception if it can't find one
SecretKeyFactory keyFactory = null;
try
{
keyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
}
catch (NoSuchAlgorithmException e)

Joe Plante
- 6,308
- 2
- 30
- 23
-
6The following article includes an example method for the usage of SecretKeyFactory's PBKDF: http://android-developers.blogspot.de/2013/02/using-cryptography-to-store-credentials.html (see section "Even more security"). – user1364368 May 17 '14 at 09:19
-
5Works for Android API 10+, as documented at https://developer.android.com/reference/javax/crypto/SecretKeyFactory.html for anyone that wonders – Warrick Mar 01 '17 at 07:16
12
Free options would be:
- http://rtner.de/software/PBKDF2.html
- http://bouncycastle.org/ (that might be newer than some Android-bundled
org.bouncycastle
) - http://www.unwesen.de/2011/06/12/encryption-on-android-bouncycastle/
- https://github.com/rtyley/spongycastle#readme
IF a commercial component is an option see for example http://www.chilkatsoft.com/java-encryption.asp (sample code http://www.example-code.com/android/crypt2_pbkdf2.asp).
Another option is to use javax.crypto
and implement it yourself although I wouldn't recommend that...

Yahia
- 69,653
- 9
- 115
- 144