package main import ( "crypto/sha1" "encoding/base64" "fmt" ) const GUID = `258EAFA5-E914-47DA-95CA-C5AB0DC85B11` func main() { // 值取自維基百科的範例 // 如果運作正常,會得到 "fFBooB7FAkLlXgRSz0BT3v4hq5s=" fmt.Println(GetWebSocketAccept(`sN9cRrP/n9NdMgdcy2VJFQ==`)) } func GetWebSocketAccept(key string) string { // 計算SHA-1摘要 sha1Result := sha1.Sum([]byte(key + GUID)) // 進行BASE-64 // 由於 sha1.Sum回傳的值是 [Size]byte,但 EncodeToString 要求的參數是 []byte,所以使用 sha1Result[0:] 變更類型 result := base64.StdEncoding.EncodeToString(sha1Result[0:]) return string(result) }
沒有留言:
張貼留言