- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在一个较大的项目中编写一个简单的文件加密/解密。由于许可证问题,我想避免使用 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/
我正在尝试使用 java 邮件阅读多部分/签名邮件,但是当我阅读 .mime 时,我没有看到原始附件,原始附件被忽略,只有我可以看到 smime.7ps 文件。这是我使用的代码: ByteArrayD
我有一个签名的电子邮件消息作为字符串。我想获取带有附件和正文的完整未签名消息的字符串,我可以使用这些消息进行解析,例如 Mail gem。 我找到了问题:Decode/extract smime.p7
我在 OSX 10.6 上使用 openssl 1.0.1b 的命令行界面。 首先,我创建一个 DSA key 。 openssl dsaparam -noout -out privatekey.pe
我想用JAVA开发一个基于SMIME的应用程序。在某些领域,我需要对 SMIME 加密/解密进行更多说明。我了解在单个收件人的情况下如何对消息进行加密和解密。 如果只有一个收件人 随机生成的 sess
我找不到任何对我有帮助的东西。我在保留 smime 电子邮件的签名时遇到问题。我正在尝试获取加密的 smime 消息,解密它,然后将其保存到数据库(用于工作)。由于消息首先被签名然后被加密,所以我认为
我们的服务正在运行 python,突然我无法验证其他人的 java 签名。 我尝试在 java 中验证,它有效... 它只是突然发生,没有对代码和证书文件做任何更改 和合作伙伴也声称他们没有改变任何东
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 8年前关闭。 Improve this que
我已经在我的系统中生成了一个本地证书,我正在尝试通过 smime 加密一个文件。但是当我运行命令时,它给我错误 Unable to load certificate Expecting trusted
我正在使用 openssl smime 来签署和验证数据。 要使用 openssl 签署文本文件,我使用以下命令: openssl smime -sign -in sample.txt -out ma
我正在尝试在一个较大的项目中编写一个简单的文件加密/解密。由于许可证问题,我想避免使用 libgpgme。 openPGP 标准对于我的项目时间框架来说太复杂了。我想用 openssl 做我的加密工作
您好,我找不到一种方法将不透明的 pkcs#7(p7m) 转换为明文分离的 smime,以便常规 mime 库可以处理签名的内容。 我想获取 p7m 文件并将其转换为保留有效签名的 smime 消息。
问题 1- 我想创建一条 MIME 消息。像这样的事情: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="---1
我想创建具有 S/MIME 格式的 pkcs7 签名信封并且还想阅读它。文件扩展名为 pk7。 如何使用 OpenSSL 库做到这一点? 最佳答案 SMIME_read_PKCS7()和 SMIME_
我正在寻找一种在客户端解密 S/MIME 电子邮件的方法。我特别不希望客户端与服务器共享私钥,因此需要找到一种方法让客户端自行完成所有操作。 我不需要支持多种浏览器,所以使用类似 window.Cry
所以,我有这个应用程序可以创建一个包含图像和内容的 zip 文件 我想使用 smime 对其进行签名。 如果我使用终端命令: openssl smime -binary -sign -passin "
我正在使用 BC 加密和签署用于 AS2 的 SMIME 消息。我们的代码适用于绝对古老的充气城堡版本 bcmail-1.4:125。升级到更新的版本会导致消息的接收者(不是太古老的 Cyclone
我试图做的是在 Mac 上复制通过终端运行的以下命令,但在 iPhone/Cocoa 上: openssl smime -binary -sign -signer cert.pem -inkey ke
我正在尝试使用 java 解码 PEM 编码文件。已经发布了一个非常相似的问题,但是它针对的是 DER 编码文件,而不是 PEM 编码文件。 openssl -decrypt by Java 那里使用
我见过很多可以使用 SMIME 加密和发送电子邮件的示例,但没有加密常规文件的示例。我有一种将 key 插入 bd 的方法,但我不知道如何使用 bouncycaSTLe 的 SMIME 来加密文件。
我将一个苹果关联文件上传到我的服务器,该服务器通过 HTTPS 提供内容,但链接验证器 here给我这个错误 你的文件应该使用 openssl smime -verify -inform DER -n
我是一名优秀的程序员,十分优秀!