在python中是否有这种crypt / decrypt的lib?我正在尝试生成加密的ascii文本,这些文本在每一代都会发生变化。
如果没有这个,你能不能建议一个工作的替代方案。已经尝试将这个PHP代码转换为python,但我失败了。
我目前使用的PHP:
function keyED($txt,$encrypt_key)
{
$ctr=0;
$tmp = "";
$txt_len=strlen($txt);
for ($i=0;$i<$txt_len;$i++)
{
if ($ctr==strlen($encrypt_key)) $ctr=0;
$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
$ctr++;
}
return $tmp;
}
function encrypt($txt,$key)
{
srand((double)microtime()*1000000);
$encrypt_key = md5(rand(0,32000));
$ctr = 0;
$tmp = "";
$txt_len = strlen($txt);
for ($i=0;$i < $txt_len;$i++)
{
if ($ctr==strlen($encrypt_key)) $ctr=0;
$tmp.= substr($encrypt_key,$ctr,1) . (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
$ctr++;
}
return keyED($tmp,$key);
}
function decrypt($txt,$key)
{
$txt = keyED($txt,$key);
$tmp = "";
$txt_len=strlen($txt);
for ($i=0;$i<$txt_len;$i++)
{
$md5 = substr($txt,$i,1);
$i++;
$tmp.= (substr($txt,$i,1) ^ $md5);
}
return $tmp;
}
$x = encrypt("test", "123");
echo decrypt($x, "123") // -> "test"
答案 0 :(得分:1)
永远不要编写自己的加密算法!有足够的现有已经反复审查过。
也就是说,在这个答案中有一个如何将AES算法与Python Crypto模块一起使用的示例:https://stackoverflow.com/a/12525165