我应该在SQL Server上将salt存储为varchar或varbinary并以十六进制形式存储吗?

时间:2015-07-13 15:03:45

标签: sql sql-server hash hex salt

我正在努力实现哈希。我打算将salt存储在数据库中,特别是SQL Server。盐将至少为32个字节。盐应该是十六进制形式还是应该将其转换为字符串,整数或其他内容?另外,我应该使用什么数据类型来存储salt:varchar,varbinary或其他什么?

为了安全起见,这无关紧要,因为盐不是秘密。但就性能和可读性而言,它可能会。

非常感谢。

1 个答案:

答案 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