Python中mcrypt的tripledes等效实现

1 投票
1 回答
819 浏览
提问于 2025-04-17 22:08

我有一些用PHP写的函数,用来加密和解密数据。这些函数不是我自己写的。现在,加密后的数据存储在数据库里,我需要用Python从那里读取这些数据,并展示给用户。我试着在网上搜索,但没有找到适合我的需求的内容。

希望有人能给我一些建议,告诉我该从哪里开始,或者提供一个有用的链接。

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));
}

1 个回答

3

有一个Python接口可以使用标准的mcrypt库。它的文档嘛……不太好找……不过我在里面摸索了一下,写了一些代码,我觉得这段代码可以实现你在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))

撰写回答