前言
最開始想嘗試在windows下面安裝python3.6,雖然python安裝成功,但在安裝Cryto模塊用pip3 install pycrypto老是會(huì)報(bào)錯(cuò)。老夫搞了半天,最終決定在linux下面去做。
以下流程限于linux系統(tǒng):
Crypto不是自帶的模塊,需要下載。http://www.voidspace.org.uk/python/modules.shtml#pycrypto
我下載了之后,發(fā)現(xiàn)下載的是crypto而不是Crypto(就是差個(gè)首字母大小寫)
![]()
而crypto.Cipher而又不能運(yùn)行,報(bào)錯(cuò),最后在:https://stackoverflow.com/questions/31485110/no-module-named-crypto-cipher/31485157 找到解答,需要在python目錄里面把Python27/Lib/site-packages下的crypto文件改名,沒錯(cuò),就是直接改成Crypto。結(jié)果就能用了...
(因?yàn)槲疑厦嫦螺d的是免安裝版,所以沒安裝VS2008。我用過pip,下載不了Crypto)windows下安裝這些模塊真是招罪,要是我的電腦再好一點(diǎn)就弄雙系統(tǒng)了..扯遠(yuǎn)了..
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位長(zhǎng)的初始密碼字符串 cipher = AES.new(secret) #通過AES處理初始密碼字符串,并返回cipher對(duì)象 s = cipher.encrypt("1234567891234567") #輸入需要加密的字符串,注意字符串長(zhǎng)度要是16的倍數(shù)。16,32,48.. print s #輸出加密后的字符串 print base64.b64encode(s) #輸出加密后的字符串的base64編碼。 print cipher.decrypt(s) #解密 這是為了一開始接觸的小白(我)理解的,一般通用一點(diǎn)的處理方法可以參考//www.jb51.net/article/114364.htm
至于為什么要把已經(jīng)加密后的字符串再用base64編碼,我覺得是對(duì)字符串的處理是基于二進(jìn)制的,而base64的原理是在每6個(gè)二進(jìn)制數(shù)的前面加兩個(gè)零,這樣的話,ascii對(duì)處理好的字符串編碼就全部可見了(起碼不是那些問號(hào)字符..),用charset模塊去測(cè)試一下,發(fā)現(xiàn)也是像我所說。
新聞熱點(diǎn)
疑難解答
圖片精選