python Crypto模块的安装与使用方法
作者:lwanttowin 时间:2022-09-17 15:19:01
前言
最开始想尝试在windows下面安装python3.6,虽然python安装成功,但在安装Cryto模块用pip3 install pycrypto老是会报错。老夫搞了半天,最终决定在linux下面去做。
以下流程限于linux系统:
Crypto不是自带的模块,需要下载。http://www.voidspace.org.uk/python/modules.shtml#pycrypto
我下载了之后,发现下载的是crypto而不是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://www.jb51.net/article/114364.htm
至于为什么要把已经加密后的字符串再用base64编码,我觉得是对字符串的处理是基于二进制的,而base64的原理是在每6个二进制数的前面加两个零,这样的话,ascii对处理好的字符串编码就全部可见了(起码不是那些问号字符..),用charset模块去测试一下,发现也是像我所说。
DES算法使用与AES的使用一样,只不过要注意初始密码字符串一定要是8位,而其他地方把AES换成DES就行(要是不回想配置环境的事情,Python还是很方便的..)
这个Crypto模块还有哈希算法等其他一下加密算法,如果有大神或者小伙伴把这个模块挖掘后,欢迎在下面留言哦,顺便也教我使用咯,谢谢大家啦
来源:http://blog.csdn.net/lwanttowin/article/details/78859709
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
http状态码一览表以及HTTP响应的返回头信息
详解使用uni-app开发微信小程序之登录模块
![](https://img.aspxhome.com/file/2023/0/126500_0s.png)
Python 多继承中的一个诡异现象 既是 Father又是grandfather
![](https://img.aspxhome.com/file/2023/7/131507_0s.jpg)
Oracle如何直接运行OS命令(上)第1/2页
Python爬虫框架Scrapy安装使用步骤
Python如何自动获取目标网站最新通知
![](https://img.aspxhome.com/file/2023/0/95900_0s.jpg)
struts2.3.24+spring4.1.6+hibernate4.3.11+mysql5.5.25开发环境搭建图文教程
![](https://img.aspxhome.com/file/2023/5/68735_0s.jpg)
Python实例方法与类方法和静态方法介绍与区别分析
python 求两个向量的顺时针夹角操作
![](https://img.aspxhome.com/file/2023/5/104985_0s.jpg)
PHP PDOStatement::bindValue讲解
js保留两位小数方法总结
Python3中exp()函数用法分析
python实现网上购物系统
CI框架出现mysql数据库连接资源无法释放的解决方法
关于WARNING:Ignoring invalid distribution -pencv-python....警告信息的处理方法(已解决!)
![](https://img.aspxhome.com/file/2023/7/65517_0s.png)
PyCharm License Activation激活码失效问题的解决方法(图文详解)
![](https://img.aspxhome.com/file/2023/4/117884_0s.jpg)
Python入门教程(四十)Python的NumPy数组创建
![](https://img.aspxhome.com/file/2023/0/100820_0s.png)
Python 调用有道翻译接口实现翻译
![](https://img.aspxhome.com/file/2023/7/89197_0s.png)
Python+OpenCV实现信用卡数字识别的方法详解
![](https://img.aspxhome.com/file/2023/0/77730_0s.png)
python中的tkinter库弹窗messagebox详解
![](https://img.aspxhome.com/file/2023/5/64625_0s.png)