python Crypto模块的安装与使用方法


Posted in Python onDecember 21, 2017

前言

最开始想尝试在windows下面安装python3.6,虽然python安装成功,但在安装Cryto模块用pip3 install pycrypto老是会报错。老夫搞了半天,最终决定在linux下面去做。

以下流程限于linux系统:

Crypto不是自带的模块,需要下载。http://www.voidspace.org.uk/python/modules.shtml#pycrypto

我下载了之后,发现下载的是crypto而不是Crypto(就是差个首字母大小写)

python Crypto模块的安装与使用方法

而crypto.Cipher而又不能运行,报错,最后在:https://stackoverflow.com/questions/31485110/no-module-named-crypto-cipher/31485157 找到解答,需要在python目录里面把Python27\Lib\site-packages下的crypto文件改名,没错,就是直接改成Crypto。结果就能用了...

(因为我上面下载的是免安装版,所以没安装VS2008。我用过pip,下载不了Crypto)windows下安装这些模块真是招罪,要是我的电脑再好一点就弄双系统了..扯远了..

0x00 安装python

apt-get install python3.6

0x01 安装pip3

1.首先安装setuptool

wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26 
 
tar -zxvf setuptools-19.6.tar.gz 
 
cd setuptools-19.6.tar.gz 
 
python3 setup.py build 

python3 setup.py install

2.然后直接安装pip就搞定了

wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb 
 
tar -zxvf pip-8.0.2.tar.gz 
 
cd pip-8.0.2 
 
python3 setup.py build 
 
python3 setup.py install

0x02 安装crypto

apt-get install python3-dev 
pip3 install Crypto 
pip3 install --upgrade pycrypt

下面主要介绍一下Crypto.Cipher的AES算法。

代码如下:

from Crypto.Cipher import AES 
import base64 
secret = "12345678912345678912345678912345"   #由用户输入的16位或24位或32位长的初始密码字符串 
cipher = AES.new(secret)            #通过AES处理初始密码字符串,并返回cipher对象 
s = cipher.encrypt("1234567891234567")     #输入需要加密的字符串,注意字符串长度要是16的倍数。16,32,48.. 
print s                     #输出加密后的字符串 
print base64.b64encode(s)            #输出加密后的字符串的base64编码。 
print cipher.decrypt(s)             #解密

这是为了一开始接触的小白(我)理解的,一般通用一点的处理方法可以参考https://3water.com/article/114364.htm

至于为什么要把已经加密后的字符串再用base64编码,我觉得是对字符串的处理是基于二进制的,而base64的原理是在每6个二进制数的前面加两个零,这样的话,ascii对处理好的字符串编码就全部可见了(起码不是那些问号字符..),用charset模块去测试一下,发现也是像我所说。

DES算法使用与AES的使用一样,只不过要注意初始密码字符串一定要是8位,而其他地方把AES换成DES就行(要是不回想配置环境的事情,Python还是很方便的..)

这个Crypto模块还有哈希算法等其他一下加密算法,如果有大神或者小伙伴把这个模块挖掘后,欢迎在下面留言哦,顺便也教我使用咯,谢谢大家啦

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

Python 相关文章推荐
python文件的md5加密方法
Apr 06 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
Aug 03 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
详解Python Matplot中文显示完美解决方案
Mar 07 Python
python的依赖管理的实现
May 14 Python
Python爬虫使用代理IP的实现
Oct 27 Python
Django-migrate报错问题解决方案
Apr 21 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
python判断字符串以什么结尾的实例方法
Sep 18 Python
python实现三壶谜题的示例详解
Nov 02 Python
python编写Logistic逻辑回归
Dec 30 #Python
python+selenium识别验证码并登录的示例代码
Dec 21 #Python
python实现随机森林random forest的原理及方法
Dec 21 #Python
python编写分类决策树的代码
Dec 21 #Python
Python基于PyGraphics包实现图片截取功能的方法
Dec 21 #Python
用Python写王者荣耀刷金币脚本
Dec 21 #Python
python使用Apriori算法进行关联性解析
Dec 21 #Python
You might like
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
PHP类的特性实例分析
2016/09/28 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
js数组Array sort方法使用深入分析
2013/02/21 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
基于jquery实现复选框全选,反选,全不选等功能
2015/10/16 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
python中快速进行多个字符替换的方法小结
2016/12/15 Python
django中的setting最佳配置小结
2017/11/21 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
python用户管理系统
2018/03/13 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
Can a struct inherit from another struct? (结构体能继承结构体吗)
2016/09/25 面试题
青春励志演讲稿
2014/04/29 职场文书
关于童年的读书笔记
2015/06/26 职场文书
Nginx 配置 HTTPS的详细过程
2022/05/30 Servers