SHA-256为给定输入提供了256位哈希码。当我尝试时,我得到了以下哈希的随机输入字符串 -
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
此哈希有64个字符。因此,考虑到常见的编码,它的大小将是 -
UTF-8 = 64 * 8 = 512位 UTF-16 = 64 * 16 = 1024位
那么怎么称它为256bit哈希。我做错了转换吗?
答案 0 :(得分:3)
这是base16 / hex表示,每个字节只有4(log2 16)位数据。
因此,sha256在这里是4 * 64。没有错。
答案 1 :(得分:1)
字符串 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 是十六进制编码的字符串。它是以16位数字表示的字节,因此每2个字符代表一个字节。
所以 2c 是第一个字节, f2 是第二个字节,依此类推。由于字符串有64个字符,因此它代表32个字节。
32字节= 256位