0

私は暗号化に不慣れで、このクラスを利用してトークンを取得しています。より深く理解するために、参照、ビデオチュートリアルなどを使用して、これら2つの機能で何が起こっているのかを理解するのを手伝ってもらえますか. 目的は、同じ手法を使用して他の言語で理解し、実装することです。

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

ありがとう

4

1 に答える 1

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

コード

于 2014-10-18T14:55:52.753 に答える