python下的加密方法

一、概念

1、对称加密A 和 B 要把他们的通信内容加密, 如果A/B使用相同的加密解密key,那这就是对称加密。

2、非对称加密有公钥和私钥。公钥随意公开,私钥自己私密保存。

比如 A 把公钥发给B, C。 当B,C与A通信时,先把约定好的见面信号用公钥加密,A收到后,用私钥解密,当解密后的数据就是提前约定好的见面信号的话,A 就认为B,C是受信链接。

二、基于Python代码编写

1、首先用openssl生成 rsa 公钥和私钥

openssl genrsa -out mykey.pem
openssl rsa -in mykey.pem -pubout > mykey.pub

2、Python代码

from Crypto.PublicKey import RSA

text = "My test!"
# 公钥加密
pub_key = RSA.importKey(open('mykey.pub'))
x = pub_key.encrypt(text)

pri_key = RSA.importKey(open('mykey.pem'))
decrypted_text = pri_key.decrypt(x[0])

decrypted_text == text  # True

3、基于Python3实现

import rsa 
 
(publickey,privatekey)=rsa.newkeys(1000)#对数字1000加密得到公钥和私钥
pub = publickey.save_pkcs1()#获取公钥
#将公钥保存到文件*************
filepub = open("public.pem",'wb+')
filepub.write(pub)
filepub.close()
 
pri = privatekey.save_pkcs1()#获取私钥
#将私钥保存到文件***********
filepri = open('private.pem','wb+')
filepri.write(pri)
filepri.close()
 
string = "laomomoblog"#待加密的字符串
 
#取出公钥
with open('public.pem','rb') as file_pub:
     f_pub = file_pub.read()
     pubkey = rsa.PublicKey.load_pkcs1(f_pub)
 
#取出私钥
with open('private.pem','r') as file_pri:
     f_pri =file_pri.read()
     prikey = rsa.PrivateKey.load_pkcs1(f_pri)
 
#加密字符串string
 
crypt = rsa.encrypt(string.encode('utf8'),pubkey)#使用公钥去加密字符串
 
 
#解密
de_crypt = rsa.decrypt(crypt,prikey)#用私钥去解密
 
#解出来的de_crypt与string应该是相等的,判断一下
print (string)
print (de_crypt)

三、参考网址

1、自己的网址:https://blog.csdn.net/zhang_yin_liang/article/details/88081576

2、外面的:

https://www.jianshu.com/p/45224e9bbe4e

https://blog.csdn.net/niedongri/article/details/81191664

https://blog.csdn.net/xiongzaiabc/article/details/88400748

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值