84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
python 用md5生成16位长度字符串,求解
闭关修行中......
兩種方法:
import random import string def id_generator(size=16, chars=string.ascii_letters + string.digits): return ''.join(random.choice(chars) for _ in range(size)) print(id_generator()) # 结果 nrICjdPKnxZdp4tI (每次都不同)
# Python 2.x import hashlib print hashlib.md5("fuck gfw").hexdigest()[8:-8] # Python 3.x import hashlib print(hashlib.md5("fuck gfw".encode('utf-8')).hexdigest())[8:-8]
md5加密後通常是32位的編碼, 實際上有時會遇到只要16位的情形, 所以如你所見, 再加一步處理, 取中間的16位即可, 這種活Python最適合了
import hashlib data = 'This a md5 test!' hash_md5 = hashlib.md5(data) hash_md5.hexdigest() # 按16位输出
輸出結果 'fdedaafb043d41ff06b6ef249ef53be9'
最簡單的方式應該是:
>>> import hashlib >>> hashlib.md5("test").digest() "\t\x8fk\xcdF!\xd3s\xca\xdeN\x83&'\xb4\xf6"
這樣就得到了 128 bit(16位)的MD5了。但不直觀,我通常都是以 16進制的格式的:
>>> hashlib.md5("test").hexdigest() '098f6bcd4621d373cade4e832627b4f6'
兩種方法:
1. 隨機(這個準確地說只是個隨機生成任意長度字母數字混合的函數而已)
2. md5(這個應該是你要的結果)
附: 16位元的MD5加密和32位元MD5加密的區別
輸出結果 'fdedaafb043d41ff06b6ef249ef53be9'
最簡單的方式應該是:
這樣就得到了 128 bit(16位)的MD5了。但不直觀,我通常都是以 16進制的格式的: