2017-07-27 48 views
-2

用户名ABC
密码DEF
Salt =用户名+密码IE; ABCDEF(saltKey的)现在只获得256位散列的前10个字符而不是完整的散列值

,这种盐密钥使用SHA256算法,输出为saltKey的(ABCDEF)哈希处理后的散列是:jjaiBx04mbD1ZvsLKuG6PyBFfJcYbl7iCnDCsi2l4tk=

现在我怎么截断为较小的哈希值,以使结果仅仅是它的第10个字符让说:jjaiBx04mb

+1

这听起来很像[XY问题](http://xyproblem.info/)给我。 –

+0

注意:从技术上说,SHA256不返回字符串,而是字节数组...但由于后并不真正关心字符串的来源,它并不重要。 –

回答

2

您可以使用String.Substring

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

这将返回始于位原始字符串的子,长度为length

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

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