存储哈希密码字节而不是字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储哈希密码字节而不是字符相关的知识,希望对你有一定的参考价值。
我最近的发展使我进入了密码存储安全,散列函数,...的世界。
我决定在数据库中存储散列函数的结果字节数组(在BINARY类型列中)以及salt,因为存储十六进制字符串会占用更多空间。
这种做法有什么缺点吗?特别是在安全方面。
+----+---------+--------------+--------------+---------------+------------+
| id | login | password | salt | name | lname |
+----+---------+--------------+--------------+---------------+------------+
| 1 | myadmin | 0x8B624d85B1 | 0x248f1706f0 | Administrador | do Sistema |
+----+---------+--------------+--------------+---------------+------------+
答案
从安全角度看,将哈希和salt存储为二进制而不是字符串,我看不出任何缺点。最终所有数据都是二进制的。
我会更关心你正在使用的散列算法。我没有看到你存储难度系数的任何地方,所以我假设你没有使用BCrypt?如果没有,您可能需要考虑使用它,因为它似乎是目前密码散列的黄金标准。
以上是关于存储哈希密码字节而不是字符的主要内容,如果未能解决你的问题,请参考以下文章
Java 使用 char[] Array 还是 String 存储字符串密码