我最近的发展使我进入了密码存储安全,散列函数,...的世界。
我决定在数据库中存储散列函数的结果字节数组(在BINARY类型列中)以及salt,因为存储十六进制字符串会占用更多空间。
这种做法有什么缺点吗?特别是在安全方面。
+----+---------+--------------+--------------+---------------+------------+
| id | login | password | salt | name | lname |
+----+---------+--------------+--------------+---------------+------------+
| 1 | myadmin | 0x8B624d85B1 | 0x248f1706f0 | Administrador | do Sistema |
+----+---------+--------------+--------------+---------------+------------+
从安全角度看,将哈希和salt存储为二进制而不是字符串,我看不出任何缺点。最终所有数据都是二进制的。
我会更关心你正在使用的散列算法。我没有看到你存储难度系数的任何地方,所以我假设你没有使用BCrypt?如果没有,您可能需要考虑使用它,因为它似乎是目前密码散列的黄金标准。