使用python进行RSA加密

第一种加密方式(公钥以-----BEGIN RSA PUBLIC KEY-----开头):

import base64
import binascii
import rsa
rsa_public_key = list()
rsa_public_key.append('-----BEGIN RSA PUBLIC KEY-----')
rsa_public_key.append('MIGJAoGBANVy2G6szNwXAj7RvDAqWECQohXicdIu+1E6gZc9wkUIpVC8LD2HrwKpmpxPTg6I4y8by9tJzTiTdJxTaukCqO8qYoWPTj3HVzDzxXELLLQ89unGp4+yPxJrtq+aNr14zH5nJBS80i0jIP2yaGzdT9EsPVCl8mq4BVg2T1ffc5aBAgMBAAE=')
rsa_public_key.append('-----END RSA PUBLIC KEY-----')
rsa_public_key = '\n'.join(rsa_public_key)
rsa_public_key1 = rsa_public_key.encode()
key = rsa.PublicKey.load_pkcs1(rsa_public_key1)
ss = rsa.encrypt(str.encode("要加密的字符串"), key)
print(ss)
#转base64编码
# print(base64.b64encode(ss).decode("utf-8"))
#将二进制数据字符串转换为十六进制编码
sss = binascii.b2a_hex(ss)
print(sss)

注意:如果你的公钥是以 -----BEGIN PUBLIC KEY----- 开头的(可以直接使用第二种加密方式),

这种格式需要转换成python支持的pkcs1格式-----BEGIN RSA PUBLIC KEY-----,注意对比,多了RSA

转换网址如下:在线RSA PKCS#1、PKCS#8公钥格式转换工具-ME2在线工具

加密的结果可以根据需要再进行转换

第二种加密方式(公钥以-----BEGIN PUBLIC KEY-----开头的):

#使用cryptography==2.6.0
from Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5
from Crypto.PublicKey import RSA

public_key = "公钥"
strc = "要加密的字符串"
rsakey = RSA.importKey(public_key)
# 使用Crypto模块中的pkcs1_v1_5,对应pkcs8的格式
cipher = Cipher_pkcs1_v1_5.new(rsakey)
enres = cipher.encrypt(str.encode(strc))
print(enres)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值