使用CodeIgniter的编码进行编码时如何在python中解码?

时间:2013-02-25 14:48:47

标签: python-2.7 codeigniter-2

我使用CodeIgniter的编码方法存储userNames,密码和安全令牌,如 -

$this->load->library('encrypt');
//...
$password = $this->encrypt->encode($rows["password"]);
//Then save it in password column of user_credentials table.

现在,在python中,我想解码这个编码的密码。我一直试图用python的hashlib解码它,但我无法解决。

我认为这是因为CI的加密库​​在密码上比md5更多 -

function encode($string, $key = '')
{
    $key = $this->get_key($key);
    if ($this->_mcrypt_exists === TRUE)
    {
        $enc = $this->mcrypt_encode($string, $key);
    }
    else
    {
        $enc = $this->_xor_encode($string, $key);
    }
    return base64_encode($enc);
}

function decode($string, $key = '')
{
    $key = $this->get_key($key);

    if (preg_match('/[^a-zA-Z0-9\/\+=]/', $string))
    {
        return FALSE;
    }

    $dec = base64_decode($string);

    if ($this->_mcrypt_exists === TRUE)
    {
        if (($dec = $this->mcrypt_decode($dec, $key)) === FALSE)
        {
            return FALSE;
        }
    }
    else
    {
        $dec = $this->_xor_decode($dec, $key);
    }

    return $dec;
}

我该如何解码呢?我需要在python中编写上面的解码函数。请帮忙。

1 个答案:

答案 0 :(得分:1)

查看CI的系统/库/ Encrypt.php,看看mcrypt_decode和_remove_cipher_noise是如何工作的。这是mcrypt库available的python接口。好狩猎。