对于大文本,我应该使用哪种哈希方法?-PHP/MYSQL
我的数据库中存储的大部分文本大小在1MB到1.5MB之间。但不能超过1.5MB,因为这是我设定的限制 以下是我的需要:对于大文本,我应该使用哪种哈希方法?-PHP/MYSQL,php,mysql,hash,Php,Mysql,Hash,我的数据库中存储的大部分文本大小在1MB到1.5MB之间。但不能超过1.5MB,因为这是我设定的限制 以下是我的需要: 我需要它来降低我的mysql数据库大小 我需要它尽可能快 不需要保安 它必须正确工作,这样字符串_1和字符串_2就永远不会有相同的散列 我使用PHP和MYSQL。我建议使用SHA1,因为git和类似的应用程序也在使用它来识别字符串 见: 以及: 我假设您需要一个压缩算法来减少文本大小 请参阅。哈希是不可逆的。您可以借助哈希将1.5MB的文本转换为小字符串,但无法将相同的哈希
- 我需要它来降低我的mysql数据库大小
- 我需要它尽可能快
- 不需要保安
- 它必须正确工作,这样字符串_1和字符串_2就永远不会有相同的散列
我使用PHP和MYSQL。我建议使用SHA1,因为git和类似的应用程序也在使用它来识别字符串 见: 以及:
我假设您需要一个压缩算法来减少文本大小
请参阅。哈希是不可逆的。您可以借助哈希将1.5MB的文本转换为小字符串,但无法将相同的哈希转换回原始文本 你要找的是一个压缩算法。通过压缩,您可以使文件变得更小,但不可能像散列一样小。节省空间
- MySQL具有内置的和函数,可以节省数据库中的空间,还需要编写额外的PHP代码
- 不必为
列编制索引[不管它们是否被压缩],您可以存储和索引2个相对较小的内容,以确保该文本是唯一的文本
- 数据的散列,MD5,SHA,任何你们想要的
- 未压缩数据的长度
- 对于大多数散列函数来说,你更容易被流星击中,而不是对不同的文本字符串使用两个相同的散列,拥有两个相同长度和散列字符串的可能性要小于同时赢得三次彩票时被流星和闪电击中的可能性
$hash = hash( 'sha1', $inputData );