【发布时间】:2017-08-20 09:36:19
【问题描述】:
寻找在 MySQL 中存储 BCrypt 哈希的正确方法我找到了this question,这只会让我更加困惑。
公认的答案指出我们应该使用:
CHAR(60) BINARY or BINARY(60)
但是 cmets 上的其他人认为我们应该使用:
CHAR(60) CHARACTER SET latin1 COLLATE latin1_bin
甚至:
COLLATE latin1_general_cs
我不是数据库专家,所以谁能解释一下所有这些选项之间的区别以及哪一个更适合存储 BCrypt 哈希?
【问题讨论】:
-
据我所知,加密哈希是比特流(即二进制),但通常表示为纯文本。你需要存储什么格式?
-
您的问题非常接近“有人可以帮我阅读有关 MySQL 数据类型的文档并做一个执行摘要吗?”
-
@ÁlvaroGonzález 是的,哈希是比特流,是的,它被编码为纯文本,但是所有这些存储选项都会导致数据库上出现不同类型的行为。
-
@Tomalak 这真的不是我的意图,我已经阅读了 BINARY 和 CHAR 的文档以及 _bin 类型的排序规则差异,但是,我看不到彼此的好处以及它们的比较方式,他们一路上的警告和惊喜,所以我的意图实际上是问一个比我更有经验的人来比较这两个选项。
-
@mFeinstein 你应该提供赏金。我认为这是一个重要的问题