RSA加密

简介

RSA是一种非对称加密算法,使用openssl ,keytools等工具生成一对公私钥对,使用被公钥加密的数据可以使用私钥来解密,反之亦然(被私钥加密的数据也可以被公钥解密)。

在实际使用中私钥一般保存在发布者手中,是私有的不对外公开的,只将公钥对外公布,就能实现只有私钥的持有者才能将数据解密的方法。 这种加密方式安全系数很高,因为它不用将解密的密钥进行传递,从而没有密钥在传递过程中被截获的风险,而破解密文几乎又是不可能的。

但是算法的效率低,所以常用于很重要数据的加密,常和对称配合使用,使用非对称加密的密钥去加密对称加密的密钥。

安装

pip install rsa

基本语法

#生成秘钥
key = rsa.PublicKey(rsa_n,rsa_e)

#加密
encode = rsa.encrypt(data.encode(),key)

RSA的公钥有两个值n和e,我们在网站中获得的公钥一般就是这样的两个值

实例

import rsa
import binascii
class RSAcoding(object):
    def __init__(self,data):
        self.data = data
        n = '8d7e6949d411ce14d7d233d7160f5b2cc753930caba4d5ad24f923a505253b9c39b09a059732250e56c594d735077cfcb0c3508e9f544f101bdf7e97fe1b0d97f273468264b8b24caaa2a90cd9708a417c51cf8ba35444d37c514a0490441a773ccb121034f29748763c6c4f76eb0303559c57071fd89234d140c8bb965f9725'
        e = '10001'
        #需转换为16进制
        self.rsa_n = int(n,16)
        self.rsa_e = int(e,16)
        self.key = rsa.PublicKey(self.rsa_n,self.rsa_e)
        self.message=""
    def encrypting(self):
        encode = rsa.encrypt(self.data.encode(),self.key)
        #查看编码
        message = binascii.b2a_hex(encode)
        self.message = message
        return message
if __name__ == '__main__':
    data = 'this is a key'
    rsaa = RSAcoding(data)
    mes = rsaa.encrypting()
    print(mes)

运行结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值