在JNI中,C ++中的Blowfish无法正确加密/解密

时间:2016-05-09 02:03:59

标签: android c++ encryption

我尝试迁移 Blowfish算法 Android Native ,这是在C ++上实现的。
但是我有些困惑!
我在一切正常,但无法 正确 解密。 遵循代码:

我在JNI中这样做:

...
click_link = $('<a></a>').html('clickable link');
click_link.on('click', function(e){
  // function to show 3rd row
  createExpand3(table);
})

我得到了这样的结果:

加密前:

JNIEXPORT jstring JNICALL Java_com_myview_myndk_LoadNative_e(JNIEnv *env, jobject this_obj,jstring src) {
const string key = "abcfgetq";
vector<char> k(key.begin(), key.end());
Blowfish blowfish(k);

jboolean isCopy;
const char *src_char = env->GetStringUTFChars(src, &isCopy);
LOGI("jchar %s======================",src_char);

const vector<char> src_vector(src_char,src_char+strlen(src_char));

vector<char> encyyption = blowfish.Encrypt(src_vector);
char *en_char = &encyyption[0];
const string en_str(en_char);
string base64_en = base64::encode(en_str);

const char *base64_de_char = base64::decode(base64_en).c_str();
vector<char> decryption = blowfish.Decrypt(vector<char>(base64_de_char,base64_de_char+strlen(base64_de_char)));
char *de_char = &decryption[0];
string de_str(de_char);

//log decryption
LOGI("decryption is %s======================",de_str.c_str());


return env->NewStringUTF(base64_en.c_str());

}

加密时:

Hello!!How Are You?!//..,,++||**

解密后:

8�{}�a�-�@e�ՠ�ϡz�P]#S�/��P(**

这有什么不对?
我在这工作了大约两天,我真的很困惑!
如果我错过了一些你正确的答案,请告诉我。

感谢您的智慧!

0 个答案:

没有答案