我使用这个 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 环境变量。
繁星coding