import base64
from Crypto import Random
from Crypto.Cipher import PKCS1_v1_5
from Crypto.PublicKey import RSA
pub_key = """-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----"""
pri_key = """-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----"""
# 加密
def encryption(text, public_key):
# 字符串指定编码(转为bytes)
text = text.encode('utf-8')
# 构建公钥对象
cipher_public = PKCS1_v1_5.new(RSA.importKey(public_key))
# 加密(bytes)
text_encrypted = cipher_public.encrypt(text)
# base64编码,并转为字符串
text_encrypted_base64 = base64.b64encode(text_encrypted).decode()
return text_encrypted_base64
# 解密
def decryption(text_encrypted_base64, private_key):
# 字符串指定编码(转为bytes)
text_encrypted_base64 = text_encrypted_base64.encode('utf-8')
# base64解码
text_encrypted = base64.b64decode(text_encrypted_base64)
# 构建私钥对象
cipher_private = PKCS1_v1_5.new(RSA.importKey(private_key))
# 解密(bytes)
text_decrypted = cipher_private.decrypt(text_encrypted, Random.new().read)
# 解码为字符串
text_decrypted = text_decrypted.decode()
return text_decrypted
text_str = '123456'
# 加密
miwen = encryption(text_str, pub_key)
print(miwen)
# 解密
mingwen = decryption(miwen, pri_key)
print(mingwen)
RSA 加解密
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、突然发现少写了一个RSA - -#...,加解密原理参照RSA算法原理,常规的加解算法一般都是对称加密: (...
- 直接加密跟解密是引入jsencrypt.js直接调用方法就可以;分段加密的话是需要修改jsencrypt.js添加...
- 为什么要分段加密 加密的字段长短规则如下: 加密的 plaintext 最大长度是 证书key位数/8 - 11,...
- 今天在用RSA加解密和服务端的进行数据传输,碰到了Android端日志打印加密后的字符串一直不会变,但是传到服务器...