加密解密

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)

 

转载于:https://www.cnblogs.com/liuguniang/p/7309709.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值