不,这个问题不是众多“存储密码的最佳MySQL数据类型是什么”的重复。
我的密码哈希当前在节点上使用pbkdfSync进行。js,我将输出设置为128(无论它是什么字节位),它将输出256个字符的哈希。
你可能会问有什么问题?嗯,这就是我的想法。在我遇到这个问题之前:使用VARCHAR时,“列密码的值太长”。
许多谷歌搜索都说varchar字符限制为65535个字符,但出于某种原因,我认为只有255个字符,哈希值比这个字符大一个字符。
所以这里的问题是:我应该更改哈希输出大小,以便使用CHAR数据类型,还是应该继续使用TEXT数据类型?或者有没有办法获得char和varchar的65535个字符的限制?
我使用的是最新的MySQL版本。
编辑:还有更多,我正在加密哈希和salt,加密输出是512个字符的哈希和344个字符的salt!
您可以将列的类型更改为VARCHAR(512),这将允许您在列中存储255个以上的字符(实际上是512个)。可以使用1到8000之间的值,也可以使用VARCHAR(MAX)作为最大值(在数据条目长度变化很大的情况下)。
在您的情况下,请尝试以下操作:
`ALTER TABLE name_of_your_table
CHANGE COLUMN password password VARCHAR(512) NOT NULL DEFAULT '';`
问题内容: 我想在数据库中存储哈希密码(使用BCrypt)。什么是一个好的类型,哪个是正确的长度?用BCrypt散列的密码是否总是相同长度? 编辑 哈希示例: 在对一些密码进行哈希处理之后,BCrypt似乎总是生成60个字符的哈希。 编辑2 很抱歉没有提及实施。我正在使用jBCrypt。 问题答案: bcrypt的模块化crypt格式包括 ,或识别哈希算法和格式 表示费用参数的两位数字值,后跟 一
我正在创建一个用户表,其中我需要以加密格式存储密码。我需要知道什么数据类型可以用来创建一个接受加密密码的列。基本上,我不需要任何函数来加密密码。当我们创建表时,必须注意这一点。 根据此链接 TIA 普拉迪普
问题内容: 我有一个简单的问题,当我想将SHA1哈希的结果存储在MySQL数据库中时发生: 我将散列结果存储在 VARCHAR 字段中多长时间? 问题答案: 我将使用可变长度的数据,但不使用固定长度的数据。由于SHA-1值 始终为 160位长,因此将仅在固定长度字段的长度上浪费一个额外的字节。 而且我也不会存储返回的值。因为每个字符只使用4位,因此需要160/4 = 40个字符。但是,如果每个字符
问题内容: 我需要计算用户在网站上花费的时间。登出时间与登出时间之间的区别是,给我类似“ X先生花了4个小时43分钟”。因此,为了存储the4小时43分钟,我这样声明: 时间NOT NULL 这是有效的还是更好的存储方式?我需要存储在数据库中,因为我还有其他计算需要将其用于+其他用例。 问题答案: 最好将其存储为整数秒数。 该会是干净和简单-即 正如Tristram所指出的,使用该字段存在局限性
问题内容: 我想在MySQL数据库中存储许多记录。它们全部包含金钱价值。但是我不知道每个数字将插入多少个数字。 为此,我必须使用哪种数据类型? VARCHAR 或 INT (或其他数字数据类型)? 问题答案: 由于资金需要精确的表示,因此不要使用只近似的数据类型。您可以将定点数字数据类型用于 是精度(值的总长度,包括小数位) 是小数点后的位数 请参见MySQL数值类型: 当保留精确度非常重要时,例
我想在一个MySQL数据库中存储许多记录。所有这些都包含了金钱价值。但我不知道每一个会插入多少个数字。 为此我必须使用哪种数据类型? VARCHAR或INT(或其他数值数据类型)?