-2

用户名 ABC
密码 DEF
Salt = 用户名 + 密码 IE;ABCDEF(盐键)

现在,这个盐键使用 SHA256 算法进行散列,散列后盐键(ABCDEF)的输出是:jjaiBx04mbD1ZvsLKuG6PyBFfJcYbl7iCnDCsi2l4tk=

现在我如何将其截断为较小的哈希,以便结果只是它的前 10 个字符,让我们说:jjaiBx04mb

4

1 回答 1

2

您可以使用String.Substring

int start = 0;
int length = 10;
string result = myString.Substring(start, length);

start这将返回从 position 开始并具有 length的原始字符串的子字符串length

因此,给 start 一个值0将产生length原始字符串的第一个字符。

但是,如果我可以提出建议,假设它在您的控制范围内,请不要以这种方式创建盐。使用完全随机的字符序列,最好使用安全的随机生成器创建,并将其与用户名和散列密码一起存储。另外,一定要让你的盐相当长。我相信您可以节省它需要的额外几个字节的数据库空间。

于 2017-07-27T17:30:35.310 回答