2008-10-30 19 views

回答

2

应该产生一个32字节的值(256位),所以二进制(32)应该工作。

4

SHA256Managed类的“Hash”属性是一个字节数组,而HashSize是256位,所以我认为二进制文件(32)是最简单的。

您可能也可以使用ToBase64Transform将它放到varchar字段中。我对Base64算法并不完全熟悉,但看起来您可能需要至少43个字符来表示64位的256位数。IIRC Base64使用了一对填充字符,所以我可能会将它放在varchar(50)只是为了安全起见。

+0

我在char(44)字段中存储为base64。不像六角弦那样浪费,并且具有Peter提到的优点。 – AlexDev 2013-12-11 11:58:24

1

SHA-256具有256位输出

256位= 32个字节

所以尽量VARBINARY(32)

12

我喜欢的哈希码转换为十六进制字符串在这种情况下,如果您喜欢“0x”前缀,则varchar(64)将执行该操作,或使用varchar(66)。通过这种方式,您可以比较容易地手动比较或(重新)设置您必须从其他位置复制/粘贴的值。例如,您丢失了管理员密码并希望通过SQL将其重置...

相关问题