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 django集成cas验证系统
Jul 14 Python
Python实现抓取城市的PM2.5浓度和排名
Mar 19 Python
在Django框架中设置语言偏好的教程
Jul 27 Python
python爬虫之xpath的基本使用详解
Apr 18 Python
python爬虫基础教程:requests库(二)代码实例
Apr 09 Python
Python Excel处理库openpyxl使用详解
May 09 Python
Python获取数据库数据并保存在excel表格中的方法
Jun 12 Python
pandas DataFrame 行列索引及值的获取的方法
Jul 02 Python
Python多版本开发环境管理工具介绍
Jul 03 Python
浅谈Python协程
Jun 17 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
Python 处理日期时间的Arrow库使用
Aug 18 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
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
web页面数据展示新想法(json)
2010/06/08 Javascript
理解Javascript_05_原型继承原理
2010/10/13 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
python基础教程之lambda表达式使用方法
2014/02/12 Python
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
基于Python实现的ID3决策树功能示例
2018/01/02 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
Linux 修改Python命令的方法示例
2018/12/03 Python
Python玩转Excel的读写改实例
2019/02/22 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
大学生职业生涯规划书范文
2014/01/14 职场文书
房屋继承公证书
2014/04/10 职场文书
公务员考察材料范文
2014/12/23 职场文书
一般纳税人申请报告
2015/05/18 职场文书
爱鸟护鸟的宣传语
2015/07/13 职场文书
母亲节主题班会
2015/08/14 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
Django使用redis配置缓存的方法
2021/06/01 Redis
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
浅谈自定义校验注解ConstraintValidator
2021/06/30 Java/Android
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL
Nginx安装配置详解
2022/06/25 Servers