gpt4 book ai didi

python3.6 实现AES加密的示例(pyCryptodome)

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 32 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python3.6 实现AES加密的示例(pyCryptodome)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

起因 。

前端日子写完的Python入库脚本,通过直接读取配置文件的内容(包含了数据库的ip,数据库的用户名,数据库的密码),因为配置文件中的数据库密码是明文显示的,所以不太安全,由此对其进行加密.

编码之路 。

编程环境 。

  1. Python3.6
  2. 第三方库–pyCryptodome

第三方库的介绍及下载 。

1.在之前的AES加密中,python2或者3.4采用的是pyCyrpto这个模块,但是昨天废了好大劲去安装它都是失败,而经过大量查阅发现此库已经停止维护了,在安装过程中尽管用pip install pycryto 去下载,对应的tar.gz可以下载,但是在自动安装时会报错,说是没有微软2014的工具环境.

2.后经继续查阅,发现pyCyrpto库的后续分支,有一个叫pyCryptodome的库,是前代的延伸版,下面给出一个全面的地址,如果有pip安装不了的库可以通过此网站进行对应的下载.

https://www.lfd.uci.edu/~gohlke/pythonlibs/ 。

python3.6 实现AES加密的示例(pyCryptodome)

当然我也是通过官方推荐,使用下面命令去下载安装的,pip就是好用。。.

?
1
pip install pycryptodome

撸码开始 。

废话不多说,直接上demo 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#AES-demo
"""
   @author: sy
   @file: python_AES.py
   @time: 2017/12/12 09:10
   @desc: AES加密
"""
from Crypto.Cipher import AES
#秘钥,此处需要将字符串转为字节
key = b 'abcdefgh'
#加密内容需要长达16位字符,所以进行空格拼接
def pad(text):
   while len (text) % 16 ! = 0 :
     text + = b ' '
   return text
#加密秘钥需要长达16位字符,所以进行空格拼接
def pad_key(key):
   while len (key) % 16 ! = 0 :
     key + = b ' '
   return key
#进行加密算法,模式ECB模式,把叠加完16位的秘钥传进来
aes = AES.new(pad_key(key), AES.MODE_ECB)
#加密内容,此处需要将字符串转为字节
text = b 'woshijiamineirong'
#进行内容拼接16位字符后传入加密类中,结果为字节类型
encrypted_text = aes.encrypt(pad(text))
print (encrypted_text)
 
#此处是为了验证是否能将字节转为字符串后,进行解密成功
#实际上a 就是 encrypted_text ,也就是加密后的内容
a = b '\xb9K\xe8_.q\x1c!\x9f\xa2\xc8\x06\xf5\xc1\xd07'
#用aes对象进行解密,将字节类型转为str类型,错误编码忽略不计
de = str (aes.decrypt(a),encoding = 'utf-8' ,errors = "ignore" )
#获取str从0开始到文本内容的字符串长度。
print (de[: len (text)])

结语 。

关于AES的加密,在java上看到项目中有用到过,但是对于Python这一次算是初体验了…..也算长见识了….尴尬之处就是在于加密后的是字节形式的。。。。。。也有可能是我哪里写的有问题吧,若有的话,还望高人指出呀。.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:http://blog.csdn.net/s740556472/article/details/78778522 。

最后此篇关于python3.6 实现AES加密的示例(pyCryptodome)的文章就讲到这里了,如果你想了解更多关于python3.6 实现AES加密的示例(pyCryptodome)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com