概述
python非对称加密及保存数据库
使用python标准包rsa
加密和解密网上一搜一大堆,但是如何保存在数据中并在取出时可以正确解密就很烦人,然后发现将加密的数据进行base64编码即可正常存入数据库中,解密时只需使用base64解码一下就行了。
- 生成对应的密钥和公钥:
pubkey, privkey = rsa.newkeys(1024)
- 保存公钥、密钥
# 公钥
with open('public.pem', 'w+') as f:
f.write(pubkey.save_pkcs1().decode())
# 密钥
with open('privkey.pem', 'w+') as f:
f.write(privkey.save_pkcs1().decode())
- 加密数据
# 导入公钥
with open('pubkey.pem', 'r') as f:
pubkey = rsa.Publickey.load_pkcs1(f.read().encode())
- 保存数据
如果要保存在数据库中,那么此时保存进去的数据,在取出来后无法进行解密,一方面有编码问题,一方面是存储方式不当。
此时选用base64编码转换后进行保存,解密时在进行base64解码即可。
import base64
crypto = rsa.encrypt(data, pubkey)
crypto = base64.encodestring(crypto)
# 现在存入数据库
- 解密数据
取出加密的数据时只需使用base64解码一下,即可进行正常解密
# 去除数据
crypto = base64.decodestring(crypto.encode('utf-8'))
data = rsa.decrypt(crypto, privkey).decode()
最后
以上就是平淡芒果为你收集整理的python非对称加密及保存数据库的全部内容,希望文章能够帮你解决python非对称加密及保存数据库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复