AES
from Crypto.Cipher import AES def xxxxxx(message): key = b'asdfghjklzxcvbnm' #16个字节 cipher=AES.new(key,AES.MODE_CBC,key) ba_data=bytearray(message,encoding='utf8') v1= len(ba_data) v2=v1 % 16 if v2 ==0: v3=16 else: v3=16 - v2 for i in range(v3): ba_data.append(v3) #凑够16字节的倍数 final_data=ba_data.decode('utf8') msg=cipher.encrypt(final_data)#要加密的字符串,必须是16字节或16字节的倍数 return msg #返回的是字节 res=xxxxxx('jdaalfvnfjldvbfslgbhti') #传入的必须是字符串 print(res)
from Crypto.Cipher import AES def xxx(message): key=b'asdfghjklzxcvbnm' #相同的密文 cipher=AES.new(key,AES.MODE_CBC,key) result=cipher.decrypt(message) data=result[0:-result[-1]] return str(data,encoding='utf8') res1=xxx(res) #传入加密过后的字节 print(res1) #返回解密后的字符串
RSA
#!/usr/bin/env python # -*- coding:utf-8 -*- import rsa import base64 # ######### 1. 生成公钥私钥 ######### pub_key_obj, priv_key_obj = rsa.newkeys(256) pub_key_str = pub_key_obj.save_pkcs1() pub_key_code = base64.standard_b64encode(pub_key_str) priv_key_str = priv_key_obj.save_pkcs1() priv_key_code = base64.standard_b64encode(priv_key_str) print(pub_key_code) print(priv_key_code) # ######### 2. 加密 ######### def encrypt(value): key_str = base64.standard_b64decode(pub_key_code) pk = rsa.PublicKey.load_pkcs1(key_str) val = rsa.encrypt(value.encode('utf-8'), pk) return val # ######### 3. 解密 ######### def decrypt(value): key_str = base64.standard_b64decode(priv_key_code) pk = rsa.PrivateKey.load_pkcs1(key_str) val = rsa.decrypt(value, pk) return val # ######### 基本使用 ######### if __name__ == '__main__': v = 'wupeiqi' v1 = encrypt(v) print(v1) v2 = decrypt(v1) print(v2)