哈希加解密常见脚本及注意事项
import hashlib
m = hashlib.md5(b"ddddssssddssaassssddddssssddssssssssddssaaaawwaawwwwwwaaaawwddwwaaaassssssssddssddssssddddssddwwddssddwwddwwaawwwwwwaawwddddssddddddwwaaaawwwwwwddddddddddssssddssssssaassssaassssddddddddssaassddddssssddwwwwddssssssddddwwddwwaawwaawwwwaawwddwwaawwaawwddddssddwwddddssddwwddwwaaaawwwwddwwwwaaaawwddddddddwwwwaawwaawwddddddddddddssaassssssssaassssssaaaassssssaassddddwwddwwddssssddddssssssssssssssssddwwwwwwwwwwwwwwwwwwaawwddwwddwwddssssssssaassddddwwwwwwddwwwwwwddssssddwwwwwwddddddddddssaaaaaassddddssssaassaaaawwaassaassddssssddwwddwwddddssddddwwwwddddwwwwaaaassaawwwwddwwwwwwaawwwwwwaassssssaaaawwwwaawwwwddwwddssddwwddddddddssaassddssssssddssssssssssssssaassssaassssaassssddssaassssssddddddssssssaassssaaaaaawwwwddddwwwwaassaaaaaaaawwwwaaaassddssssssssssddddssssssssaaaassssaaaassssssssssddddddwwwwwwaaaawwddddwwddwwddwwddddddddddssssaassssaassddssssaaaaaassaaaaaassddddddssddwwddssssaaaaaassddssssaawwaaaaaassssssddwwddddddddddddssdd")
print(m.hexdigest())
hashlib就是一个python用来实现hash的库,里面还有些其它算法
md5方法接受bytes对象
加密之后可以用.digest()输出的字节串或者hexdigest()输出十六进制的字符串
举个例子
.digest()输出:\x12\x23
.hexdigest()输出:1223
两者对于可见字符的处理不同,比如0x41为A 加入答案是0x41 0x12
在字节串即.digest()中输出为b"A\x12" (因为会把可见字符直接用那个表示,不可见的才是\x什么什么
而.hexdigest()依旧是4112(可见字符依旧是那两个十六进制数组成的)
这个md5当然也可以不传参
import hashlib
m = hashlib.md5()
m.update(b"hello")
print(md5.hexdigest())
那么你就要用md5对象的m来使用update方法,传入字节串
注意,不管是update里面的参数还是md5里面的参数,我都说的字节串
如果这么写是不行的
hashlib.md5("hello")
报错如下:
Traceback (most recent call last):
File "d:\xxx.py", line 3, in
md5.update("hello")
TypeError: Strings must be encoded before hashing
就是因为字符串不等于字节串,可以这么写
b"hello"
或者"hello".encode()(默认使用utf-8编码方式)
或者"hello".encode("utf-8"),encode()方法就是把字符串以一定编码方式变为字节串

浙公网安备 33010602011771号