我正在努力实现哈希。我打算将salt存储在数据库中,特别是SQL Server。盐将至少为32个字节。盐应该是十六进制形式还是应该将其转换为字符串,整数或其他内容?另外,我应该使用什么数据类型来存储salt:varchar,varbinary或其他什么?
为了安全起见,这无关紧要,因为盐不是秘密。但就性能和可读性而言,它可能会。
非常感谢。
答案 0 :(得分:2)
任何有价值的加密算法(请原谅双关语)都将处理二进制数据。假设您使用的盐长度相同,则应使用int[][] int_table = new int[3][4];
for(int j = 0; j < 3; j++)
{
for(int i = 0; i < 4; i++)
{
int_table[j][i] = sum[j * 4 + i];
}
}
列,如果盐的长度可变,请使用BINARY
。
salt应该是随机或伪随机的字节序列。对于您正在散列的每个值,它应该是不同的,但可以以明文形式存储。
这样的代码将提供您需要的值。
VARBINARY