首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >识别AES加密文件

识别AES加密文件
EN

Stack Overflow用户
提问于 2017-04-10 21:41:49
回答 2查看 2.1K关注 0票数 0

有没有一种方法可以根据文件内容识别或检查AES加密的文件(就像ZIP文件可以通过在文件开头查找字母"PK“来识别)?是否有任何与AES加密文件相关联的神奇数字?

工作流存储库中有多个文件,它们要么是纯文本(可以是excel、XML、JSON、text等)。或者AES-256加密,不知道哪些是AES加密的。我需要编写Java代码来识别AES加密的文件并自动解密它们。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-10 21:50:06

在没有任何标准标头的情况下,可以查看字节频率。AES加密的数据(或者任何使用适当算法加密的数据)似乎都是随机的字节序列。这意味着0-255字节值的分布将大致持平(即所有字节值都是相同的)。

然而,文本文档将主要包含可打印字符--有些要比其他字符多得多。空格、换行符、元音等将不成比例地常见。

因此,您可以为各种文件构建字节计数直方图,并寻找一种简单的方法将其分类为加密或未加密。例如,查看5个最不常见字节值的总计数与5个最常见字节值的总计数的比率。我预计加密文件的这一比率接近1.0,而对于普通文本文档则是1.0 (我确信还有更复杂的统计指标可用于.)。

当然,对于极短的文档来说,这可能不太好用。

另请参阅:

票数 3
EN

Stack Overflow用户

发布于 2017-04-11 18:16:20

AES是一个分组密码。就其本身而言,它只能将128位值转换为另一个看似随机的128位值。为了加密更多的数据,增加了操作模式和可能的填充方案。如果您想更进一步,比如生成加密文件,您确实需要定义一种文件格式,因为前面提到的机制没有提供这种格式。

所以,如果你说你有一个AES加密的文件,这并不意味着除了你的文件在某种程度上被加密。

现代加密的结果看起来像随机噪声,所以您可以比较加密文件和非压缩结构化文件的hamming重量。就像DNA提到的那样,可能会有分歧。压缩文件看起来也像随机噪声,但它们可能包含偏差,如果文件足够长,这些偏差可能足够大。

有些文件格式包含标识符how,数据是加密的。大多数自制格式都没有任何与标识符相近的内容,因为它们是为特定的应用程序编写的,而且协议或文件格式不会经常更改。开发人员满足于一些“密码套件”,并没有费心使其灵活。如果您知道文件是由哪个程序生成的,那么您很可能会发现它们是否是加密的。如果该程序是开源的,这是很容易的。如果它是封闭的源,你仍然可以反向工程它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43333329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档