使用openssl分析加密文件
Parse encrypted file with openssl
我已经用openssl加密了一个文件,现在我想在不解密的情况下读取加密的文件(实际上解析该文件)。基本上,我想看看加密的文件是否包含某个单词。我该怎么做?我搜索了不同的博客和帖子,我能想到的唯一解决方案是解密文件(这会创建一个新的READABLE文件),在解密的文件中搜索单词,然后将其删除。由于我不喜欢创建文件的解密副本然后将其移除,有没有任何方法可以在不解密的情况下解析/读取文件?我可能应该提到我正在使用c++,但我认为这并不重要,我是对的吗?提前感谢您能给我的所有帮助。
没有办法解析加密的文件(至少如果你使用的是合理的、不可破解的——在这种情况下,除了Ceasar密码或XOR密码之外的几乎所有东西都被视为"不可破解")。
换句话说,您需要找到一种解密内容的方法——一种解决方案当然是解密到内存或stdout
,并使用管道从文件中读取。
一个例子(这里写的是一个大致的想法,确切的代码可能需要一些调整):
FILE* p = popen("openssl des3 -d -in myfile.encrypted", "r");
int ch;
while((ch = fgetc(p)) != EOF)
{
... process a character at a time ...
}
pclose(p);
我已经用openssl加密了一个文件,现在我想在不解密的情况下读取加密的文件(实际上解析该文件)…看看加密的文件是否包含某个单词。
为了保持语义安全性,您需要使用同态加密方案。OpenSSL不支持这些密码系统,因此使用OpenSSL可能是不可能的。
如果您不关心语义安全性,那么您可能可以使用任意数量的方案。Mats给了你几个。但它们会像筛子一样泄漏信息,用频率分析等简单技术可能很难破解。
您可能想了解完全同态加密和某种同态加密方案。如果该方案建立在晶格上,那么NTRU库可能会提供该方案或有用的基元。Shoup的NTL库也可能提供该方案或基元。(我不知道,因为我不使用FHE或SHE计划)。
您还应该与security.stackeexchange.com或crypt.stackexchange.com.
- 在QT中使用Botan C++来加密文件
- 为 S3 客户端加密文件生成预签名 URL 以查看/打开
- 使用公钥 X509 V3 (PKCS7) 使用 AES 128 模式 cbc 加密文件
- 如何加密文件并隐藏密码
- 如何通过AES-256-CBC使用密码代替密钥和IV加密文件
- 文件内加密文件系统
- 使用一个人的补码加密文件
- 使用文件缓冲区循环加密文件
- 解密AES-256加密文件不起作用
- 使用 Botan 和 Qt 加密文件时出错
- AES_cfb128_encrypt不会解密加密文件中的所有字节
- 可视化解密 AES-196-ECB 文件 在C++,尝试加密文件,但在解密时无法恢复文件
- AES 加密C++(无法解密加密文件)
- 将用户信息保存到加密文件中的程序
- 解密和加密文件
- 解压缩加密文件(以字节为单位)
- 如何使用 EncFS 和 C++ 加密文件
- 解密 AES 加密文件的部分
- 解密 AES 加密文件,导致崩溃的功能
- 从一个简单的c++加密文件中读取