有没有办法看一串乱码看出来是那种加密方式?
比方说长度或者首字母之类的, 一般的 MD5, SHA 能不能直接辨认出来呢?
8 回复
能看出是的神仙
MD5符合这个规则: /^[0-9a-fA-F]{16,32}$/
如果加密不可逆的话那就不要想了,如果可逆的话就要知道秘钥
随便给一个16~32长度之间的数字与字母组合就能判定是MD5加密得到的?
@hinode 大哥,您淡定一点好不好!! 1、这个正则的意思是,长度是16或者32,里面的字符只能是0123456789abcdefABCDEF 2、__“符合这个规则”的意思是,如果是MD5加密后的字符串__必须满足上面的条件,不是说满足这个条件就__一定__是MD5字符串
首先要弄明白, MD5 和 SHA1 根本不是加密, 而是Hash.
如果无论丢什么数据进去出来都是同样长度的,基本上就是HASH,不可逆。其中16位或者32位用16进制表示的“很有可能”是MD5,40位(忘了有没记错,没事都不会去数。。)用16进制表示的也“很有可能”是SHA1
如果长度会跟随内容的长度变化的:
- 如果是用0-9、A-Z、a-z表示的,并且末尾“有可能”包含
=
号的,“有可能”是base64,可以尝试用base64解码后看看能不能得到原文,如果不行,那就继续吧。。 - 如果密文(或者base64解码之后的密文)的字节数和原文的字节数有关(比如相等、2倍、3倍等等),有条件的话可以尝试丢组合进去,比如丢个“111”、“222”。。。进去观察出来的密文,样本足够多说不定能找到对应关系(好吧这是很弱智的加密算法。。不过我们学校的拨号器的确就是这么弱智)
对于“糕端”一点的加密算法,默哀把。。