在PHP中加密的令牌

I'm new to encryption and utilizing this class to get tokens, Can someone help me understand what's going on these two functions with the help of references, video tutorials etc. for a deeper understanding. Purpose is to understand as well as implement in other languages using the same technique.

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));
}
}

thanks

as well as implement in other languages using the same technique

i doubt that ,)

Not an easy topic. You will have to dig into different cyphers and encryptions, especially RIJNDAEL_128 and CBC, like you posted.

If you want to learn about rinjndael, then look for AES (Advanced Encryption Standard).

SPEC You may find the offical specification at: http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf

Book This is the AES capther out of the crypto-textbook of Christof Paar and Jan Pelzl: http://wiki.crypto.rub.de/Buch/download/Understanding-Cryptography-Chapter4.pdf

Tutorial

Videos

Animation/Presentation

PHP Manual - Extension mCrypt

Code