我有一个要求,以确定数据是否加密。数据是一个Json格式的字段。我发现了另一个问题
但这对于识别哪种加密技术以及从2014年开始的加密技术来说,还不知道这是否仍然有效。
另一件事,我只想确保字段是加密的,不想识别加密技术。
发布于 2018-03-07 12:58:35
根据您期望的数据类型,您可以尝试查看数据的熵(随机性)。正确的加密数据应该与随机噪声几乎没有区别,并且比任何类型的结构化数据具有更高的熵。
Shannon熵是确定字符串“随机性”级别的常用方法--您可以在各种语言中找到大量示例代码。
还有一些其他类型的数据也将具有非常高的熵(图像、压缩数据等),但是您可能可以查看签名/魔术字节。
不是万无一失,但可能给你一个好的起点。
发布于 2017-09-07 17:16:39
除非您从事于执行渗透测试/安全审核,否则您将运行一组哈希解码工具,以查看数据是否已被编码。字典检查是第一阶段,第二阶段运行哈希解码器来解码流行的哈希,如Base64、ROT、7位编码;或者使用简单的XOR/NOR位(从+1位到向上)切换混淆。
然后,您需要运行一个过滤器来检查数据格式,并希望它与某种类型的文件模式相匹配。
然而,要检查使用强PKI加密文件的确切加密机制是不可能的。
发布于 2017-09-08 07:05:30
您可以使用不同的数据来检查一些测试,例如获得的字符串是否总是相同的长度。如果数据可能是散列而不是加密(即: AES),则始终是相同的。另一种可能是,这仅仅是编码,例如,在Base64,十六进制等(这里的长度也不会固定)。对于这些编码检查,我喜欢这个同时提供多个编码器的web,因此它简化了测试:http://www.asciitohex.com/
尽管您对加密的类型不感兴趣,但是有一个有用的工具可以帮助您识别哈希算法(如果这适用的话!)使用并因此确定它是加密的(在本例中为散列):http://psypanda.github.io/hashID/
只需根据您的代码运行它,它将检查模式、长度、特殊字符和其他可能提示使用的散列算法类型的标记。
https://security.stackexchange.com/questions/168987
复制相似问题