如何解密cookie?

Moh*_*osh 7 laravel laravel-5.3

我刚刚发现了一个关于哨兵报告的崩溃,我正在尝试调试并查看问题的根本原因.

幸运的是,在cookies面板中,我可以看到laravel_session崩溃发生时使用的值.

问题是,如何解密cookie?

Jam*_*esG 5

您可以使用以下代码解密Cookie:

    $cookie = 'eyJpdiI6ImFUQ0FvMWFSVlNvTmhlQjdLWGw1Z1E9PSIsInZhbHVlIjoicFh6Q09iTDl0K0huWU1Nc1NYVmxSY2hPRGU5Vk85dDJyYUpRbUVjRWg5R0JxYkVobkF3YkZVcVQrakFFUmxaVnZrTjFST3F3RTZ4akpDZEpvUFJiQXc9PSIsIm1hYyI6IjlhYmJhMTY3MWMxYWI3YjJmNmFjMmNkZWE0MWZmMmVhNTNiMjI5ZWY3NzUwNzQ0ZjAzMGQ1ZGU0YzVhNjJmZGYifQ==';
    $cookie_contents = json_decode( base64_decode( $cookie, true ));
    $value = base64_decode( $cookie_contents->value );
    $iv = base64_decode( $cookie_contents->iv );
    $clear = unserialize( \openssl_decrypt($value, \Config::get( 'app.cipher' ), \Config::get( 'app.key' ), OPENSSL_RAW_DATA, $iv));
    echo "Cookie contents (Session ID): $clear\n";
Run Code Online (Sandbox Code Playgroud)

您应该以一个看起来像这样的会话ID结束:

  • Laravel 5.1:55782b00dbfcc3f848585ac2cefc66802d773cf5
  • Laravel 5.4:yPjeV74joY4MtMNNtTpeOYBP2CMixJBBChc9HRND

我没有使用Laravel 5.3进行测试,但我相信它会起作用。

使用此代码时,请确保将cookie的全部内容粘贴到$cookie变量中,包括末尾的两个等号。