15.1. hashlib — Secure hashes and message digests — Python 3.5.6 documentation https://docs.python.org/3.5/library/hashlib.html
import hashlib def hashlib_str(str, type='sha224'): if type == 'sha224': return hashlib.sha224(str).hexdigest() elif type == 'sha256': return hashlib.sha224(str).hexdigest() elif type == 'sha384': return hashlib.sha384(str).hexdigest() elif type == 'sha512': return hashlib.sha512(str).hexdigest() elif type == 'md5': return hashlib.md5().hexdigest() elif type == 'sha1': return hashlib.sha1().hexdigest() l = ['剑网三 唐门的 武器材料提示我用光了 很多技能不能用 找了很久不知道在什么地方买', '剑网三方买', '剑网三 唐门的 武器材料提示我用光了 很多技能不能用 找了很久不知道在什么地方买剑网三 唐门的 武器材料提示我用光了 很多技能不能用 找了很久不知道在什么地方买'] ''' SELECT SUM(1) FROM question; 11652677 SELECT SUM(LENGTH(title))/(SELECT SUM(1) FROM question) FROM question; 57.1070 ''' type_l = ['sha224', 'sha256', 'sha384', 'sha512', 'md5', 'sha1'] for str in l: for t in type_l: str_ = str.encode(encoding='utf-8') print(t, len(str), len(hashlib_str(str_, type=t)))
sha224 40 56
sha256 40 56
sha384 40 96
sha512 40 128
md5 40 32
sha1 40 40
sha224 5 56
sha256 5 56
sha384 5 96
sha512 5 128
md5 5 32
sha1 5 40
sha224 80 56
sha256 80 56
sha384 80 96
sha512 80 128
md5 80 32
sha1 80 40
在避免哈希冲突的情况下,尽可能用少的字符串;