1 MD5, SHA… (hashlib)
可进行md5, sha1, sha224, sha256, sha384, sha512不同长度的加密
这些加密是不可逆的,没有直接解密的函数
import hashlibs = 'hello world'print hashlib.md5(s).hexdigest()# 5eb63bbbe01eeed093cb22bb8f5acdc3 # 32位加密# 或者md5 = hashlib.md5()md5.update(s)print md5.hexdigest()print hashlib.md5(s).hexdigest()# 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee... # 128位加密
加盐: 即对要加密的字符串加上一段特定的字符串,增加破解难度
# ...password = '123456'salt = 'this is a salt'md5.update(password + salt)print md5.hexdigest()
2 MD5, SHA… (Cryto.Hash)
Cryto为第三方包,可自行安装
pip install pycrypto可进行HMAC, MD2, MD4, MD5, RIPEMD160, SHA1, SHA224, SHA256, SHA384, SHA512, CMAC, Poly1305加密
from Crypto.Hash import MD5, SHA512s = 'hello world'md5 = MD5.new()md5.update(s)print md5.hexdigest()
3 base64
可进行base16, base32, base64等加密 这些加密是可逆的
import base64password = '123456'base64.b64encode(password)# 'MTIzNDU2'base64.b64decode('MTIzNDU2')# '123456's = '中国'base64.b64encode(s)# '5Lit5Zu9'print base64.decode('5Lit5Zu9')# 中国
4 crc32
binascii, base64, zlib模块均可进行crc32加密
import zlibimport base64import binasciipassword = '123456'print zlib.crc32(password)print binascii.crc32(password)print base64.binascii.crc32(password)
5 AES加密
双向加密
