Python crypt / decrypt字符串

时间:2013-07-17 19:52:19

标签: python crypt libs

在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"

1 个答案:

答案 0 :(得分:1)

永远不要编写自己的加密算法!有足够的现有已经反复审查过。

也就是说,在这个答案中有一个如何将AES算法与Python Crypto模块一起使用的示例:https://stackoverflow.com/a/12525165