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

撸码开始

废话不多说,直接上demo

# from Crypto.Hash import MD5
# obj = MD5.new()
# obj.update(b'hello')
# print(obj.hexdigest())

#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这一次算是初体验了…..也算长见识了….尴尬之处就是在于加密后的是字节形式的。。。。。。也有可能是我哪里写的有问题吧,若有的话,还望高人指出呀。。

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

最新文章

  1. 向ES6靠齐的Class.js
  2. 《C专家编程》第三章——分析C语言的声明
  3. winform中ComboBox实现text和value,使显示和值分开,重写text和value属性
  4. AC日记——ISBN号码 openjudge 1.7 29
  5. VG.net矢量图和矢量动画开发平台拓扑图软件免费下载
  6. 变更到Android4.4的问题
  7. angularjs uigrid 中celltemplate的写浮动框
  8. 优雅的使用sublime写lua~ sublime lua相关必装插件推荐~~
  9. 彻底了解构建 JSON 字符串的三种方式
  10. ES6,Array.includes()函数的用法
  11. C++ 仿函数/函数指针/闭包lambda
  12. 远离压力,提高效率——Getting things done读书笔记
  13. react rem
  14. rabbitmq3.6.5镜像集群搭建以及haproxy负载均衡
  15. python 经典博客链接
  16. 随机森林学习-2-sklearn
  17. 根据 train_test.prototxt文件生成 deploy.prototxt文件
  18. Swift里的CAP理论和NWR策略应用
  19. Re:LieF ~親愛なるあなたへ~ 后感
  20. oracle 批量更新之将一个表的数据批量更新至另一个表

热门文章

  1. MySQL返回影响行数的测试示例
  2. Spring4 MVC RESTFul WebServices CRUD实例+RestTemplate
  3. 13个能快速开发android的经典项目
  4. 本地Jdev Run PG报严重: Socket accept failed错误
  5. 手动编译JAVA类
  6. 【Python】重载模块
  7. PHP和JAVA整合开发的三个方案(六)
  8. VirtualBox使用物理硬盘建立磁盘
  9. 058——VUE中vue-router之实例操作新闻列表单页面应用与路由别名的使用
  10. Centos7 防火墙常用命令 开启 关闭防火墙