gpt4 book ai didi

c - 我的加密是否像 openPGP/SMIME 一样安全?

转载 作者:太空狗 更新时间:2023-10-29 16:09:05 29 4
gpt4 key购买 nike

我正在尝试在一个较大的项目中编写一个简单的文件加密/解密。由于许可证问题,我想避免使用 libgpgme。 openPGP 标准对于我的项目时间框架来说太复杂了。我想用 openssl 做我的加密工作。

现在我已经实现了以下内容:

加密(伪代码):

RAND_bytes(aes_key)
RAND_bytes(aes_salt)

EVP_BytesToKey(EVP_aes_256_cbc(), EVP_sha1(), (const unsigned char *)aes_salt, aes_key, sizeof(aes_key), 5, key, iv);

然后我aes256我的数据

EVP_EncryptInit_ex(&e_ctx, EVP_aes_256_cbc(), NULL, key, iv);

然后我用RSA加密 key 和iv

RSA_public_encrypt(flen, (unsigned char *)key, encryptedKey, rsa, RSA_PKCS1_PADDING );
RSA_public_encrypt(flen, (unsigned char *)iv, encryptedIV, rsa, RSA_PKCS1_PADDING );

然后我将 128 位 key 和 iv 保存在文件的“顶部”(256 字节 header )。

解密:-> 读取前 256 个字节(分成 key 和 iv)-> 用本地 RSA 私钥解密 key 和 iv(当然 RSA 私钥不在文件中)-> 使用 key 和iv解密数据

我对那个代码安全吗?

最佳答案

由于这是一种新格式,您应该使用 OAEP 填充。只需将 RSA_PKCS1_PADDING 更改为 RSA_PKCS1_OAEP_PADDING。您实际上不需要加密 IV(据我所知,这不会造成伤害,而且可能会有所帮助)。

否则,只要RSA_size(rsa)==16,这个方法应该没问题。当然,不能解密文件的任何人都不能知道私钥。

关于c - 我的加密是否像 openPGP/SMIME 一样安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7868754/

29 4 0
文章推荐: html - 大量的 HTML Canvas 还是一个大 Canvas ?
文章推荐: javascript - HTML/JavaScript : Fix scroll position after screen rotation
文章推荐: javascript - 如何使用 Javascript 查找带命名空间的 HTML 元素
文章推荐: jquery - 将 gridview 呈现为
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com