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)
}
沒有留言:
張貼留言