Created
October 20, 2016 18:05
-
-
Save CMingTseng/543203ff80d3d42a2ff44971b7c45aa9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//PBKDF2 - Derive Key from Password | |
// Important: Don't forget to include the call to System.loadLibrary | |
// as shown at the bottom of this code sample. | |
package com.test; | |
import android.app.Activity; | |
import com.chilkatsoft.*; | |
import android.widget.TextView; | |
import android.os.Bundle; | |
public class SimpleActivity extends Activity { | |
private static final String TAG = "Chilkat"; | |
// Called when the activity is first created. | |
@Override | |
public void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
CkCrypt2 crypt = new CkCrypt2(); | |
boolean success = crypt.UnlockComponent("Anything for 30-day trial"); | |
if (success != true) { | |
Log.i(TAG, crypt.lastErrorText()); | |
return; | |
} | |
String hexKey; | |
// http://www.di-mgt.com.au/cryptoKDFs.html#examplespbkdf | |
String pw = "password"; | |
String pwCharset = "ansi"; | |
// Hash algorithms may be: sha1, md2, md5, etc. | |
String hashAlg = "sha1"; | |
// The salt should be 8 bytes: | |
String saltHex = "78578E5A5D63CB06"; | |
int iterationCount = 2048; | |
// Derive a 192-bit key from the password. | |
int outputBitLen = 192; | |
// The derived key is returned as a hex or base64 encoded string. | |
// (Note: The salt argument must be a string that also uses | |
// the same encoding.) | |
String enc = "hex"; | |
hexKey = crypt.pbkdf2(pw,pwCharset,hashAlg,saltHex,iterationCount,outputBitLen,enc); | |
Log.i(TAG, hexKey); | |
// The output should have this value: | |
// BFDE6BE94DF7E11DD409BCE20A0255EC327CB936FFE93643 | |
} | |
static { | |
// Important: Make sure the name passed to loadLibrary matches the shared library | |
// found in your project's libs/armeabi directory. | |
// for "libchilkat.so", pass "chilkat" to loadLibrary | |
// for "libchilkatemail.so", pass "chilkatemail" to loadLibrary | |
// etc. | |
// | |
System.loadLibrary("chilkat"); | |
// Note: If the incorrect library name is passed to System.loadLibrary, | |
// then you will see the following error message at application startup: | |
//"The application <your-application-name> has stopped unexpectedly. Please try again." | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment