如何编写Cipher.getInstance(“DES”);在jni?

时间:2011-10-24 01:38:19

标签: android java-native-interface

我想改变

Cipher cipher = Cipher.getInstance("DES"); 

进入jni中的cpp代码。怎么做?

2 个答案:

答案 0 :(得分:3)

JNIEnv *jni; //Comes from somewhere
jclass cl = jni->FindClass("javax/crypto/Cipher");
jmethodID MID = jni->GetStaticMethodID(cl, "getInstance", "(Ljava/lang/String)Ljavax/crypto/Cipher;");
jstring s = jni->NewStringUTF("DES");
jobject cipher = jni->CallStaticObjectMethod(cl, MID, s);

这省略了错误处理。

答案 1 :(得分:1)

另一种替代方案是使用本机代码进行加密,例如OpenSSL的。

强制警告:不要使用DES。