python - 如何使用 TripleDES 和 Python 加密数据?
问题描述
我正在使用 TripleDES 集成来自第三方的 API。他们有一个 PHP 代码示例,我一直在尝试用 Python 做同样的事情,但仍然无法正常工作。以下是PHP代码,任何帮助将不胜感激,非常感谢。
class TripleDES {
function mencrypt_3des($text, $key) {
// echo 'plain text: '.$text;
// echo '</br>'.'========='.'</br>';
// echo 'key: '.$key;
$text = $this -> pkcs5_pad($text, 8);
$size = mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($size, MCRYPT_RAND);
$bin = pack('H*', bin2hex($text));
$encrypted = mcrypt_encrypt(MCRYPT_3DES, $key, $bin, MCRYPT_MODE_ECB, $iv);
$encrypted = bin2hex($encrypted);
// echo '</br>'.'========='.'</br>';
// echo 'encrypted: '.$encrypted;
return $encrypted;
}
function pkcs5_pad($text, $blocksize) {
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
}
解决方案
推荐阅读
- operating-system - 线程数据存储在哪里,当操作系统执行其他进程时,操作系统如何将类似寄存器的值传递给 CPU?
- php - 升级到 PHP 7.4.3 cURL Socks 代理不工作后
- microsoft-edge - microsoft edge 是否支持 IOS 中的 url 方案/深度链接?
- python - 并排差异不再适用于 VS Code 中的 python 文件
- python - VSCode:如何删除“测试框架......未安装。安装?” 从多文件夹工作区
- excel - filename.xls 的文件格式和扩展名不匹配。文件可能已损坏或不安全
- reactjs - 捆绑连接到应用商店的 NPM 包
- node.js - 基本网络理解
- vb.net - 每次启动应用程序时随机程序集/应用程序名称 VB.NET 代码
- vue.js - Vuejs 不能在模板中使用 lodash 但它适用于代码