Encryption 区分SHA-1和SHA-2

Encryption 区分SHA-1和SHA-2,encryption,sha,Encryption,Sha,我们有一个加密数据的程序,需要知道它使用的是SHA-1还是SHA-2。不幸的是,唯一的提示是具有哈希值的表。 有人能告诉我如何区分这两种加密类型,以及这里使用哪一种加密类型吗 我们有一个加密数据的程序,需要知道它使用的是SHA-1还是SHA-2 我想你的意思是你在散列数据。SHA是一系列哈希算法,而不是加密算法 你要区分的主要方式是它们的长度。SHA-1是160位(20字节)。SHA-2有几种形式,从224位到512位(28-64字节)。请注意,SHA-2有一些被截断的版本,因此很难确切确定使用

我们有一个加密数据的程序,需要知道它使用的是SHA-1还是SHA-2。不幸的是,唯一的提示是具有哈希值的表。 有人能告诉我如何区分这两种加密类型,以及这里使用哪一种加密类型吗

我们有一个加密数据的程序,需要知道它使用的是SHA-1还是SHA-2

我想你的意思是你在散列数据。SHA是一系列哈希算法,而不是加密算法


你要区分的主要方式是它们的长度。SHA-1是160位(20字节)。SHA-2有几种形式,从224位到512位(28-64字节)。请注意,SHA-2有一些被截断的版本,因此很难确切确定使用的是哪一个,但它们都比SHA-1长。

您可能是指哈希而不是加密。加密是可逆的,散列是不可逆的,加密就像是随机排列,而散列则试图像一个随机函数。 SHA-1的长度为160位(20字节),而SHA-2的长度为224-512位(28-32字节)。 注意,您可以使用十六进制编码或base64编码,这将为每个编码字符提供4或6位。 在某些情况下(例如密码散列),习惯于在散列前面加上关于它们是如何创建的信息,您会看到散列字符串以一些特殊前缀开头,例如$1$,它告诉您正在查看的内容

如果您没有额外的前缀,并且数据被截断为相同的长度,并且在散列之前您对输入一无所知,那么我不相信您可以通过任何实际方法区分这两者。如果能够区分SHA-1和截断的SHA-2之间的差异,则意味着其中至少有一个可以从随机数据中分离出来,而我们要求安全的加密函数不能从中分离出来。 我不知道有什么实际的攻击

不管计算复杂度如何,您都无法高概率地判断单个哈希来自何处,因为大多数哈希都有来自另一个函数的预映像