1
我試過搜索,但沒有找到答案。 我正在C++中製作websocket服務器,但我無法獲得接受密鑰的工作。C++ WebSocket服務器實現(接受密鑰錯位)
這裏是我的代碼:
std::string magicKey = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
key.append(magicKey);
unsigned char* sha_str = SHA1(reinterpret_cast<const unsigned char*>(key.c_str()), key.length(), nullptr);
std::string final = base64_encode(reinterpret_cast<const unsigned char*>(sha_str), strlen((char*)sha_str));
而且我使用openssl/sha.h
但SHA1和BASE64後,它已經得到了「=」結尾。它需要獲得2個? – 2013-02-27 09:50:25
嘗試比較你的代碼中的最後一個字符串與perl之一,它們應該是相同的 – 2013-02-27 09:55:02
另外請檢查sha1字符串的長度應該是20. strlen(str)也可能是一個問題。 – 2013-02-27 10:02:57