快速搭建python程式
公司對外提供了http介面服務,涉及到了des加密,有客戶用Python開發,但搞不定加密,客戶的問題就是大問題,雖然以前沒接觸過Python,也只能硬著頭皮上,不停的baidu各種資料,從環境搭建、到hello world、最後到des加密實現,終於在半天之內幫客戶搞定。感嘆Python強大的類庫,幾行程式碼搞定穩定,大家網上分享自己的各種經驗關鍵時候真能幫上大忙,遇到各種問題都能搞定。以下是記錄自己從Python零基礎到實現des加密的過程,留作備忘與和我一樣遇到類似問題的朋友。
- 安裝python環境
- 安裝IDE(Eclipse+PyDev)
- hello world實現
- des加密實現
安裝python環境
-
python可以從 ofollow,noindex" target="_blank">python官網 下載。
遇到問題:python版本的選擇,從官網看主要有2.x和3.x,而且都在更新,翻看 資料 大概看了看,兩個版本有差別,考慮到我看的教程用的2.7.15,果斷選擇了同樣的版本。下載“Windows x86-64 MSI installer(for AMD64/EM64T/x64)”並安裝,一路next安裝完成。
-
配置環境變數
這個對安裝過java的程式員來說是輕車熟路,稍微提一下,如果安裝python時,勾選“Add Python to PATH”可以省去這一步。
配置好後win+r,輸入cmd,輸入python,輸出“Python 2.7.15”,環境配置成功。
安裝IDE(Eclipse+PyDev)
-
安裝外掛
網上查了下, python IDE 還真不少,之前本地安裝了Eclipse,選擇Eclipse+PyDev方案。
Eclipse本地早已安裝好,直接在Eclipse安裝PyDev外掛。步驟:
Eclipse選單 -> Help -> Install New Software... -> Work with (Add..)
Name:PyDev
Location: http://pydev.org/updates
-
安裝問題
一路next,finish,安裝成功後竟然看不到外掛,幾番百度下來,發現Eclipse和PyDev有個版本對應關係,參考 解決安裝成功看不到外掛 ,把上圖中的Location改為“ http://www.pydev.org/update_sites/old/ ” ,同時把上圖中第一個複選框“Show only the lastest versions of availabele soft”的勾選去掉。Eclipse和PyDev版本對應關係 Python官網 有介紹。
這裡還有個小插曲,以為外掛安裝點完finish就安裝完畢了,立馬重啟Eclipse,其實不是,應該還有個下載安裝的過程,尤其是網速比較慢的情況下,Eclipse視窗右下角會顯示“Installing Software 31%”,還會有確認視窗和重啟Eclipse提示。這步也浪費了不少時間,可能這一步對的話能省掉選擇Python版本一步。
-
配置外掛
Eclipse和Python關係:
Eclipse選單 -> Windows ->Preferences -> PyDev-> Interpreters - Python Interpreter.
點選New按鈕,選擇python.exe的路徑(第1步安裝Python的路徑),開啟後顯示出一個包含很多複選框的視窗,點OK結束!
hello world實現
-
編寫hello world
按照網上的操作步驟,新增一個專案DesTest,新增package,新增Module命名hello.py,程式碼如下:
# -*- coding: UTF-8 -*- print("Hello world");
遇到問題:java思維嚴重,一直想著怎麼新增一個class檔案,沒有,仔細看了下資料才發現應該是新增Module。
-
執行程式碼
右鍵 Run As -> Python Run,輸出Hello world,執行成功。
遇到問題:報錯“SyntaxError: Non-ASCII character '\xca'”,中文編碼問題,需要新增“# - - coding: UTF-8 - -”。
到這一步,感覺看到曙光了,環境已經準備好,剩餘工作就是搞定Des加密類庫,生成合適的引數,除錯結果了。
des加密實現
實現起來並不難,主要是用到了 pyDes庫 ,下載pyDes-1.3.1.zip並解壓,裡面有setup.py檔案,使用命令python setup.py install命令安裝即可。

實現des完整程式碼如下:
```Python
# - - coding: UTF-8 - -
from pyDes import *
import base64
from string import lower
# Des加密演算法封裝
def desFacade(data, token):
#不足8位則用數字0補足至8位
token = token + "00000000";
#加密KEY為經紀雲KEY密文前8位
key = token.lower()[0:8];
print "Decypted string: %r" % key;
k = des(key, CBC, key, pad=None, padmode=PAD_PKCS5);
desString = k.encrypt(data);
d = base64.b64encode(desString);
return d;
passwork = "qawsed";
fangToken = "jjRxxxxxyxy";
print "Decypted string: %r" % desFacade(passwork, fangToken)
#結果O1lDo+QTAL4=
assert desFacade(passwork, fangToken) == "O1lDo+QTAL4=" ;
```
參考教程: http://www.runoob.com/python/python-tutorial.html ,快速熟悉語法全靠它了。