问题遇到的现象和发生背景
最近在进行对一段数据的加密,第三方提供了c#的例子,我需要移植到linxu上使用后C语言,但是使用C语言的加密结果和c#结果不一样,我不理解。同样都是使用RSA加密算法,但是结果却不一样。
问题相关代码,请勿粘贴截图
c#核心代码代码:cipherbytes为加密结果,会转成base64
RsaEngine rsa = new RsaEngine();
//
rsa.Init(true, privateKeyParam);
//
cipherbytes = rsa.ProcessBlock(cipherbytes, 0, cipherbytes.Length);
return Convert.ToBase64String(cipherbytes);
c语言核心代码:encrypt_data为加密结果,也会转成base64,
int ret = RSA_private_encrypt(
get_str_len((const char )buf), (unsigned char)buf,
(unsigned char*)encrypt_data.data(), rsa, RSA_PKCS1_PADDING);
RSA_free(rsa);
运行结果及报错内容
对于同一个秘钥和字符串,加密的结果却不一样,
我的解答思路和尝试过的方法
使用在线加密解密工具,发现C语言的结果和在线加密解密的结果是一样的,但是c#是不一样的,但是c#的结果却是能够被第三方解密,c语言的结果第三方解密不了,这就是我遇到的问题所在
我想要达到的结果
c语言和c#的结果一样