在PHP中加密的令牌

时间:2014-10-18 14:40:48

标签: php encryption auth-token

我刚接触加密并利用这个课程来获取令牌,有人可以借助参考资料,视频教程等帮助我理解这两个功能的进展,以便更深入地理解。目的是使用相同的技术理解和实施其他语言。

class Crypt {

public static function encrypt($data, $secret) {
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $key = pack('H*', $secret);
    return base64_encode($iv . mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv));
}

public static function decrypt($data, $secret) {
    $data = base64_decode($data);
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $iv = substr($data, 0, $iv_size);
    $data = substr($data, $iv_size);
    $key = pack('H*', $secret);
    return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv), chr(0));
}
}

感谢

1 个答案:

答案 0 :(得分:0)

  

以及使用相同技术在其他语言中实现

我怀疑,)

不是一个简单的话题。 您将不得不深入研究不同的密码和加密 RIJNDAEL_128和CBC,就像你发布的一样。

如果您想了解rinjndael,请查找AES (Advanced Encryption Standard)

<强> SPEC 您可以在http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf

找到官方规范

图书 这是来自Christof Paar和Jan Pelzl的加密教科书中的AES首席执行官: http://wiki.crypto.rub.de/Buch/download/Understanding-Cryptography-Chapter4.pdf

教程

<强>画

动画/演示文稿

PHP手册 - 扩展名mCrypt

<强>代码