Я новичок в шифровании и использовании этого класса для получения токенов. Может ли кто-нибудь помочь мне понять, что происходит с этими двумя функциями, с помощью ссылок, видеоуроков и т. Д. Для более глубокого понимания. Цель состоит в том, чтобы понять, а также реализовать на других языках, используя ту же технику.
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));
}
}
Спасибо
а также реализовать на других языках, используя ту же технику
я сомневаюсь, что ,)
Непростая тема.
Вам придется копаться в разных шифрах и шифрах, особенно
RIJNDAEL_128 и CBC, как вы опубликовали.
Если вы хотите узнать о Rinjndael, а затем искать AES (улучшенный стандарт шифрования).
SPEC
Вы можете найти официальную спецификацию по адресу: http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
Книга
Вот капсула AES из крипто-учебника Кристофа Паара и Яна Пельцля:
http://wiki.crypto.rub.de/Buch/download/Understanding-Cryptography-Chapter4.pdf
Руководство
Видео
Анимация / Презентация
Руководство по PHP — расширение mCrypt
Код
Других решений пока нет …