【发布时间】:2020-01-05 17:43:47
【问题描述】:
我使用这个 PHP 代码来加密一个字符串:
use ParagonIE\Halite\KeyFactory;
use ParagonIE\Halite\Symmetric\Crypto as Symmetric;
use ParagonIE\HiddenString\HiddenString;
define("SECURE_PLACE", '/home/htdocs/secure_place/encryption.key');
/*
//already generated
$enc_key = KeyFactory::generateEncryptionKey();
KeyFactory::save($enc_key, $secure_place);
*/
$enc_key = KeyFactory::loadEncryptionKey(SECURE_PLACE);
$string = "String to be encrypted";
$cipherstring = \ParagonIE\Halite\Symmetric\Crypto::encrypt(
new HiddenString(
$string
),
$enc_key
);
我可以用 PHP 解密它:
$string = \ParagonIE\Halite\Symmetric\Crypto::decrypt(
$cipherstring,
$enc_key
);
但我需要在 Python3 中完成此操作,因为我将 POST 将加密字符串发送到 AWS lambda handler.py 函数。
我知道Halite 是一个 PHP 库,但我也知道它是 Libsodium 的包装器,它是“一个可移植、可交叉编译、可安装、可打包的 NaCl 分支,具有兼容的 API 和扩展的API 可进一步提高可用性。”
有谁知道我应该在 Python3 中使用哪个依赖项(如果可能,提供代码)来解密字符串?我想我需要将enc_key 设置为 Lambda 环境变量。
【问题讨论】:
标签: php python encryption libsodium