На странице RFC6455 на стр. 7 и 8 вы можете увидеть, как сервер обрабатывает клиентское значение Sec-WebSocket-Key (объединяет персональный GUID, используя SHA1 и возвращающую закодированную строку base64).WebSocket: Как клиент получает руководство?
Я предполагаю, что это используется по соображениям безопасности. Если клиент будет знать GUID серверов, он может сделать тот же расчет и сравнить ответ с его личным результатом для идентификации сервера.
Но как клиент узнает о GUID серверов? или есть ли другая причина для этого алгоритма?
Это, вероятно, стоит упомянуть терминальную команду, используемую для генерации является 'эхо -n "dGhlIHNhbXBsZSBub25jZQ == 258EAFA5-E914-47DA-95CA-C5AB0DC85B11" | openssl dgst -binary -sha1 | openssl base64'. Кроме того, промежуточная сумма sha1 в шестнадцатеричном формате является 'b37a4f2cc0624f1690f64606cf385945b2bec4ea', но учтите, что вы должны преобразовать ее в двоичный код до кодировки base64. – dzh