我是靠谱客的博主 平淡芒果,最近开发中收集的这篇文章主要介绍python非对称加密及保存数据库,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

python非对称加密及保存数据库

使用python标准包rsa
  加密和解密网上一搜一大堆,但是如何保存在数据中并在取出时可以正确解密就很烦人,然后发现将加密的数据进行base64编码即可正常存入数据库中,解密时只需使用base64解码一下就行了。

  1. 生成对应的密钥和公钥:
pubkey, privkey = rsa.newkeys(1024)
  1. 保存公钥、密钥
# 公钥
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())
  1. 加密数据
# 导入公钥
with open('pubkey.pem', 'r') as f:
    pubkey = rsa.Publickey.load_pkcs1(f.read().encode())
  1. 保存数据
      如果要保存在数据库中,那么此时保存进去的数据,在取出来后无法进行解密,一方面有编码问题,一方面是存储方式不当。
      此时选用base64编码转换后进行保存,解密时在进行base64解码即可。
import base64
crypto = rsa.encrypt(data, pubkey)
crypto = base64.encodestring(crypto)

# 现在存入数据库
  1. 解密数据
      取出加密的数据时只需使用base64解码一下,即可进行正常解密
# 去除数据
crypto = base64.decodestring(crypto.encode('utf-8'))
data = rsa.decrypt(crypto, privkey).decode()

最后

以上就是平淡芒果为你收集整理的python非对称加密及保存数据库的全部内容,希望文章能够帮你解决python非对称加密及保存数据库所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部