2014-03-13 52 views
1

我有以下PHP函數來加密和解密數據。他們不是我自己寫的。現在加密的數據存儲在數據庫中,我必須從那裏讀取它並使用python將其顯示給用戶。我試圖谷歌它,但我沒有找到任何適合我的需求。python相當於php mcrypt tripledes

希望有人提示我從哪裏開始或有用的鏈接。

function Decrypt($input) { 
     $key = "xxx"; // 18 Signs 
     $iv = "xxx"; // 8 Signs 
     return mcrypt_decrypt(MCRYPT_TRIPLEDES, $key, base64_decode($input), MCRYPT_MODE_ECB, $iv); 
} 

function Encrypt($input) { 
    $key = "xxx"; // 18 Signs 
    $iv = "xxx"; // 8 Signs 
    return base64_encode(mcrypt_encrypt(MCRYPT_TRIPLEDES, $key, $input, MCRYPT_MODE_ECB, $iv)); 
} 

回答

3

有一個Python interface to the standard mcrypt library。它的文檔......沒有那麼多......但我在它周圍戳,並與一些代碼,我認爲上來複制您發佈的PHP:

import mcrypt 
import base64 

KEY = 'xxx' 
IV = 'xxx' 
ALGORITHM = 'tripledes' 
MODE = 'ecb' 

def encrypt(data): 
    cryptor = mcrypt.MCRYPT(ALGORITHM, MODE) 
    cryptor.init(KEY, IV) 
    return base64.b64encode(cryptor.encrypt(data)) 

def decrypt(data): 
    cryptor = mcrypt.MCRYPT(ALGORITHM, MODE) 
    cryptor.init(KEY, IV) 
    return cryptor.decrypt(base64.b64decode(data)) 
+0

謝謝您的回答! –

+0

我只需要編輯:cryptor.init(KEY.ljust(KEY_SIZE,'\ 0'),IV),因爲我的密鑰很短。我設置了KEYSIZE = 24 –

+0

非常感謝你 –