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

  

<>强起因

  

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

  

<强>编码之路

  

<强>编程环境

  
      <李> Python3.6李   <李>第三方库-pyCryptodome李   
  

<强>第三方库的介绍及下载

  

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

  

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

  

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

  

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

  

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

        pip安装pycryptodome      

<>强撸码开始

  

废话不多说,直接上演示

        # AES-demo   ”“”   @author: sy   @file: python_AES.py   @time: 2017/12/12分   @desc: AES加密   ”“”   从加密。进口AES密码   #秘钥,此处需要将字符串转为字节   关键=b 'abcdefgh '   #加密内容需要长达16位字符,所以进行空格拼接   def垫(文本):   虽然len(文本)% 16 !=0:   文本+=b ' '   返回文本   #加密秘钥需要长达16位字符,所以进行空格拼接   def pad_key(重要):   而len(关键)% 16 !=0:   键+=b ' '   返回键   #进行加密算法、模式央行模式,把叠加完16位的秘钥传进的来   aes=AES.new (pad_key(关键),AES.MODE_ECB)   #加密内容,此处需要将字符串转为字节   文本=b 'woshijiamineirong '   #进行内容拼接16位字符后传入加密类中,结果为字节类型   encrypted_text=aes.encrypt(垫(文本)   打印(encrypted_text)      #此处是为了验证是否能将字节转为字符串后,进行解密成功   #实际上一个就是encrypted_text,也就是加密后的内容   a=b \ xb9K \ xe8_.q \ x1c ! \ x9f \ xa2 \ xc8 \ x06 \ xf5 \ xc1之前\ xd07 '   #用aes对象进行解密,将字节类型转为str类型,错误编码忽略不计   德=str (aes.decrypt (a)、编码=皍tf - 8”,错误=昂雎浴?   #获取str从0开始到文本内容的字符串长度。   打印(de [: len(文本)])   之前      

<强>结语

  

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

  

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

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