Если https уже зашифровал GET-запрос, важно ли шифрование sha? - PullRequest
0 голосов
/ 10 октября 2019

Я смотрю на документ Weixin, я обнаружил, что они используют SHA-1. Я чувствую, что это небезопасно, но потом мой друг сказал: «Не важно, мы используем https», поэтому мне интересно, важно ли использовать SHA-1 или другие? Когда https зашифрует наш запрос?

Спасибо!

Это документ Weixin: https://developers.weixin.qq.com/doc/offiaccount/en/Basic_Information/Access_Overview.html

private function checkSignature()
{
    $signature = $\GET["signature"];
    $timestamp = $\GET["timestamp"];
    $nonce = $\GET["nonce"];
    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    if( $tmpStr == $signature ){
        return true;
    }else{
        return false;
    }
}

1 Ответ

0 голосов
/ 10 октября 2019

SHA-1 - это однонаправленная хэш-функция ... хотя ее не следует использовать в большинстве случаев, но в вашем случае, поскольку вы используете ее для WeChat, у вас нет другого выбора, кроме как использовать ее, если только WeChat не изменяетесть реализация.

Также, чтобы ответить на другой ваш вопрос, когда HTTPS шифрует ваш запрос, поэтому HTTPS - это протокол, который обеспечивает защиту и шифрование данных в движении.

Когда браузерпытается получить доступ к веб-сайту, защищенному с помощью SSL, браузер и веб-сервер устанавливают соединение SSL с помощью процесса, называемого «рукопожатие SSL» (см. диаграмму ниже). Обратите внимание, что SSL Handshake невидим для пользователя и происходит мгновенно.

SSL Handshake

По сути, для настройки соединения SSL используются три ключа: публичный, частные и сеансовые ключи. Все, что зашифровано с помощью открытого ключа, может быть расшифровано только с помощью закрытого ключа, и наоборот.

Поскольку шифрование и дешифрование с помощью открытого и открытого ключа отнимает много вычислительной мощности, они используются только во время SSL-рукопожатия длясоздать симметричный ключ сеанса. После установки безопасного соединения ключ сеанса используется для шифрования всех передаваемых данных.

...