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非对称加密及保存数据库内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复