应该将加密密码存储为字节数组还是字符串,为什么?

时间:2017-06-07 21:28:49

标签: encoding passwords bcrypt

我读了一些SO答案(我似乎再也找不到),加密密码必须作为字节数组存储在数据库中。我将它们存储为字符串。通过将它们存储为字节数组或者它可能更安全,我获得了什么好处?

2 个答案:

答案 0 :(得分:2)

编码不会改变系统的安全性。使用更容易和与数据库兼容的任何内容。一如既往,您选择的编码和数据库API必须适合任意二进制数据,大多数字符编码(如UTF-8和ASCII)都不适用。

答案 1 :(得分:2)

存储base64字符串?这与原始二进制文件一样安全。将原始二进制文件作为ASCII字符串处理?在读,写,字符串处理,表导出/备份期间,这可能会搞砸。例如,二进制0 = \ 0 =许多语言中字符串标记的结尾。