一 模块简介
1.简介
python的Crypto模块是安全hash函数(例如SHA256 和RIPEMD160)以及各种主流的加解密算法的((AES, DES, RSA, ElGamal等)的集合。
 
二 实例解析
 
1.AES实例
from os import urandom
from Crypto.Cipher import AES # For Generating cipher text
secret_key = urandom(16)
iv = urandom(16)
obj = AES.new(secret_key, AES.MODE_CBC, iv) # Encrypt the message
message = b'Xu sheng test me'
print('Original message is: ', message)
encrypted_text = obj.encrypt(message)
print('The encrypted text', encrypted_text)

输出结果:

Original message is:  b'Xu sheng test me'
The encrypted text b'\x80\xaf\x93\xef\xd6\xab\xe4t\xad\xdf\xfbgChSt'

2. AES解密

from os import urandom
from Crypto.Cipher import AES # For Generating cipher text
secret_key = urandom(16)
iv = urandom(16)
obj = AES.new(secret_key, AES.MODE_CBC, iv) # Encrypt the message
message = b'Lorem Ipsum text'
print('Original message is: ', message)
encrypted_text = obj.encrypt(message)
print('The encrypted text', encrypted_text) # Decrypt the message
rev_obj = AES.new(secret_key, AES.MODE_CBC, iv)
decrypted_text = rev_obj.decrypt(encrypted_text)
print('The decrypted text', decrypted_text.decode('utf-8'))
输出结果:
Original message is:  b'Lorem Ipsum text'
The encrypted text b'\xe9\xfcC\xb3\x132&n\xc7\xdeZe9\xeb\xab\xf3'
The decrypted text Lorem Ipsum text
三 注意事项
1.错误:
TypeError: Object type <class 'str'> cannot be passed to C code
解决方案:
AES_KEY、IV还有要加密的数据转换成bytes类型就可以了。

python3 Crypto模块实例解析的更多相关文章

  1. python3 之 闭包实例解析

    一.实例1: def make_power(y): def fn(x): return x**y return fn pow3 = make_power(3) pow2 = make_power(2) ...

  2. Maven--多模块依赖实例解析(五)

    <Maven--搭建开发环境(一)> <Maven--构建企业级仓库(二)> <Maven—几个需要补充的问题(三)> <Maven—生命周期和插件(四)&g ...

  3. 【转】Python3 configparse模块(配置)

    [转]Python3 configparse模块(配置) ConfigParser模块在python中是用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(s ...

  4. Unity加载模块深度解析(Shader)

    作者:张鑫链接:https://zhuanlan.zhihu.com/p/21949663来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 接上一篇 加载模块深度解析(二 ...

  5. Unity加载模块深度解析(网格篇)

    在上一篇 加载模块深度解析(一)中,我们重点讨论了纹理资源的加载性能.这次,我们再来为你揭开其他主流资源的加载效率. 这是侑虎科技第53篇原创文章,欢迎转发分享,未经作者授权请勿转载.同时如果您有任何 ...

  6. [转]python3之模块psutil系统性能信息

    转自:https://www.cnblogs.com/zhangxinqi/p/9106265.html 阅读目录 1.psutil模块安装 2.获取CPU信息 3.内存信息 4.磁盘信息 5.网络信 ...

  7. Spring的AOP配置文件和注解实例解析

    1.1           Spring的AOP配置文件和注解实例解析 AOP它利用一种称为"横切"的技术,将那些与核心业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减 ...

  8. Python3 logging 模块

    Python3 logging模块 日志模块: 用于便捷记录日志且线程安全的模块 CRITICAL = 50 FATAL = CRITICAL ERROR = 40 WARNING = 30 WARN ...

  9. Vue Vuex中的严格模式/实例解析/dispatch/commit /state/getters

    严格模式 import getters from './getters' import mutations from './mutations' import actions from './acti ...

  10. Vue Vuex 严格模式+实例解析+dispatch/commit + state/getter

    1.严格模式 import getters from './getters' import mutations from './mutations' import actions from './ac ...

随机推荐

  1. 有用的工具类(Java)

    IP地址获取 public class IPUtil { private static final String UNKNOWN = "unknown"; protected IP ...

  2. 洛谷P1009 阶乘之和

    捏妈第三节的题单名不是循环结构吗,直接出了第八节的高精度大数计算,紧急学习 对于较大数的加减乘除阶乘等,C/C++原生的数据类型是存储不了的(即便用longlong),直接计算会出现数据移除成负数的结 ...

  3. SP16113 SUBTLEBA - Trucks Transportation 题解

    题目传送门 前言 本题样例有问题,如果想要样例可以去 vjudge 上. 本题提交后可能会出现 UKE ,建议前往 link 提交,而且本篇题解中所提供的代码也为 link 代码. 前置知识 Krus ...

  4. 浅谈高维FWT

    概述 快速沃尔什变换,可以用来处理有关异或卷积的问题. 而异或运算,也就是二进制下的不进位加法运算,我们考虑能否将其拓展到高维. 也就是,在 \(k\) 进制下的不进位加法卷积. 对于具体的某一位,我 ...

  5. linux 中grep 命令详细使用方法说明

    前言在linux命令行中,经常需要对当前获取的一堆数据进行过滤.提取和分析,其中grep命令是其中非常重要的命令之一,比如,在生产环境服务器上,经常使用到下面这个命令 ps -ef | grep ja ...

  6. 【Unity3D】Shader常量、变量、结构体、函数

    1 源码路径 ​ Unity Shader 常量.变量.结构体.函数一般可以在 Unity Editor 安装目录下面的[Editor\Data\CGIncludes\UnityShader]目录下查 ...

  7. 【OpenGL ES】第一个案例

    1 前言 ​ OpenGL(Open Graphics Library)是由 SGI 公司开发的一套 3D 图形软件接口标准,由于具有体系结构简单合理.使用方便.与操作平台无关等优点,OpenGL 迅 ...

  8. CSS之浮动Float

    前言 提到浮动,前端的小伙伴肯定都不陌生,但是随着弹性布局等等一些更好用的标准出来后,用在布局方面少了很多,当初我刚开始接触前端的时候,很习惯用浮动来给元素改变定位,当时还并不是很流行flexbox布 ...

  9. 关于Image的mode属性(多图示例)

    一.总览 Image的mode是指图片裁剪.缩放的模式,共有14个合法值,分别是: /** 缩放模式,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素 */ scaleToFill ...

  10. python中操作csv

    示例 import csv with open('t.csv', mode='r', encoding='utf-8') as f: reader_obj = csv.reader(f) # 通过re ...