我尝试使用下,两个OpenAES和OpenSSL,是这样的:
OpenAES/OpenSSL的保持兼容
- 应用1编码使用OpenAES
- 应用2解码使用OpenSSL
问题是我无法解码它,实际上我很惊讶,因为每当OpenSSL或任何其他我见过的AES实现总会生成 sam时,OpenAES会生成一个 不同的块e块。
我注意到的另一个区别是,OpenAES生成的块为48个字节,当OpenSSL的生成16.
这是我的加密字符串(OpenAES):
pCtx = oaes_alloc();
if (pCtx == NULL)
return FALSE;
oRet = oaes_key_import(pCtx, sKey, szKey);
if (oRet != OAES_RET_SUCCESS)
{
return FALSE;
}
// Get the required buffer size
oRet = oaes_encrypt(pCtx, (const uint8_t*)csSource, szLen, NULL, pOutLen);
if (oRet != OAES_RET_SUCCESS)
{
oaes_free(&pCtx);
return FALSE;
}
*ppOut = (char*)calloc(*pOutLen, sizeof(char));
oRet = oaes_encrypt(pCtx, (const uint8_t*)csSource, szLen, (uint8_t*)*ppOut, pOutLen);
if (oRet != OAES_RET_SUCCESS)
{
oaes_free(&pCtx);
free(*ppOut);
return FALSE;
}
oaes_free(&pCtx);
这是如何我解密(OpenSSL的):
AES_KEY kDecrypt;
AES_set_decrypt_key(sKey, 128, &kDecrypt);
AES_decrypt(pEncoded, pDecoded, &kDecrypt);
SKEY是与OpenAES
0123所生成的密钥pEncoded来自OpenAES的加密块
pDecoded输出数据。
我不能把我的手指上的问题尚未...
是否有使用OpenAES所以结果可以通过以下OpenSSL解密的一种特殊的方式,或只是不兼容?
由于
我很疑惑你为什么在你的加密代码中使用'oaes_decrypt(...)'。这是OpenAES的一些糟糕的命名吗? – rossum 2014-08-28 16:20:04
我的不好,我粘贴了错误的代码...感谢注意!我编辑它。 – julz 2014-08-28 16:44:56
伟大的图书馆,没有文件,没有问题。即使它在Google代码上显示,也很难通过谷歌搜索找到。那么这段代码如何处理:'for(_j = 0; _j
2014-08-28 18:56:31