已解决
密码学
MySQL:使用附加HASH字段的UNIQUE文本字段10
在我的MySQL数据库中,我有一个表定义如下:CREATE TABLE `mytablex_cs` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`tag` varchar(6) COLLATE utf8_bin NOT NULL DEFAULT '',
`value` text COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`),
KEY `kt` (`tag`),
KEY `kv` (`value`(200))
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
我需要在value字段上实现UNIQUE约束(键)。
我知道还不可能为blob或text字段的整个值定义唯一索引,但是有一个票证(?)打开来实现这样的功能(参见本页 ),其中建议创建一个唯一的使用哈希的密钥已经为其他字段实现了。
现在我想使用类似的方法向表中添加另一个字段,该字段将包含哈希并在此字段上创建唯一键。
我看了一下创建这个哈希的可能方法,因为我想避免冲突(我需要插入几百万个条目),似乎RIPEMD-160算法是最好的算法,即使快速搜索给出了我使用SHA256甚至SHA1和MD5的几个类似的解决方案。
我完全缺乏密码学方面的知识,那么选择这种方法的缺点是什么呢?
我的另一个问题是:MySQL目前使用哪种算法来创建哈希?
Orange
2019.07.31
4617
收藏