如何解密cookie?

问题描述 投票:7回答:1

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

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

问题是,如何解密cookie?

laravel laravel-5.3
1个回答
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";

您最终应该得到一个如下所示的会话ID:

  • Laravel 5.1:55782b00dbfcc3f848585ac2cefc66802d773cf5
  • Laravel 5.4:yPjeV74joY4MtMNNtTpeOYBP2CMixJBBChc9HRND

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

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

© www.soinside.com 2019 - 2024. All rights reserved.