gpt4 book ai didi

mysql - 在 MySQL 中存储 SHA1 哈希值

转载 作者:IT老高 更新时间:2023-10-28 12:49:22 25 4
gpt4 key购买 nike

当我想将 SHA1 哈希的结果存储在 MySQL 数据库中时,我遇到了一个简单的问题:

我存储散列结果的 VARCHAR 字段应该多长时间?

最佳答案

我将 VARCHAR 用于可变长度数据,但不用于固定长度数据。因为 SHA-1 值 总是 160 位长,所以 VARCHAR 只会浪费 an additional byte for the length of the fixed-length field .

而且我也不会存储 SHA1 的值正在返回。因为它每个字符只使用 4 位,因此需要 160/4 = 40 个字符。但是如果你使用每个字符 8 位,你只需要一个 160/8 = 20 字符长的字段。

所以我推荐你使用BINARY(20)UNHEX functionSHA1 值转换为二进制。

我比较了 BINARY(20)CHAR(40) 的存储要求。

CREATE TABLE `binary` (
`id` int unsigned auto_increment primary key,
`password` binary(20) not null
);
CREATE TABLE `char` (
`id` int unsigned auto_increment primary key,
`password` char(40) not null
);

百万条记录 binary(20) 需要 44.56M,而 char(40) 需要 64.57M。InnoDB 引擎。

关于mysql - 在 MySQL 中存储 SHA1 哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/614476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com