Golang:securecookie对cookie值进行编码解码和加密解密

时间:2022-11-02 16:59:51

securecookie encodes and decodes authenticated and optionally encrypted cookie values.

译文:securecookie对经过身份验证和可选加密的cookie值进行编码和解码。

安装

go get github.com/gorilla/securecookie

示例

加密

package main

import (
    "fmt"

    "github.com/gorilla/securecookie"
)

func main() {
    // Hash keys should be at least 32 bytes long
    var hashKey = []byte("secret")

    // 实例化 securecookie
    var secure = securecookie.New(hashKey, nil)

    name := "userid"
    value := "1234567"

    // 对value进行编码
    encodeValue, _ := secure.Encode(name, value)
    fmt.Printf("encodeValue: %v\n", encodeValue)
    // MTY2NzM1MjIxNXxDZ3dBQnpFeU16UTFOamM9fHtnTTKIl3ZkYrr4_8w8zpdtyCkeDNmgXi7JsVIhmw5f
}

解密

package main

import (
    "fmt"

    "github.com/gorilla/securecookie"
)

func main() {
    // Hash keys should be at least 32 bytes long
    var hashKey = []byte("secret")

    // 实例化 securecookie
    var secure = securecookie.New(hashKey, nil)

    name := "userid"

    // 对value进行编码
    encodeValue := "MTY2NzM1MjIxNXxDZ3dBQnpFeU16UTFOamM9fHtnTTKIl3ZkYrr4_8w8zpdtyCkeDNmgXi7JsVIhmw5f"

    value := ""
    secure.Decode(name, encodeValue, &value)
    fmt.Printf("value: %v\n", value)
    // value: 1234567
}

参考 [「Go工具箱」web中想让cookie值更安全?推荐使用securecookie包]