libgcrypt AES返回ascii密文?

时间:2011-05-02 00:27:46

标签: java c++ cryptography java-native-interface gnupg

嘿,我正在开发一个JNI共享库,它使用AES256 CFB模式使用libgcrypt加密某些数据,然后将加密后的数据传递回java app进行进一步处理。

但是,当我尝试通过再次将数据传递到共享库来解密数据时,我再也无法获得原始纯文本了。似乎如果我加密并解密相同的数据而不将其传回Java应用程序,我会得到原始的纯文本。

我原以为将用于存储加密数据的char缓冲区转换为NewStringUTF()(即env-> NewStringUTF(buf))以发送回导致问题的java那么是否可以将加密数据的输出/转换为ascii或者是否有其他工作?

非常感谢, 富

1 个答案:

答案 0 :(得分:0)

为什么只使用JNI和外部库来加密字符串?使用Java的内置javax.crypto.Cipher类。

但是,关于实际问题,您应该将数据作为字节数组传递,而不是字符串。密码操作字节,而不是抽象的Unicode代码点。