0

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

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

我在想这是我用来存储加密数据的 char 缓冲区到 NewStringUTF()(即 env->NewStringUTF(buf))的转换,以发送回导致问题的 java,所以没有了获取/将加密数据的输出转换为 ascii 或者是否有其他解决方法?

非常感谢, 福

4

1 回答 1

0

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

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

于 2011-05-02T03:41:26.617 回答