相当于Java的SHA256withRSA的Golang

时间:2018-10-23 03:43:37

标签: go cryptography

是否有与Java java.security.Signature的SHA256withRSA等效的Golang?一项研究表明,我无法简单地计算出SHA256哈希值,然后使用RSA对其进行签名。

1 个答案:

答案 0 :(得分:0)

弄清楚是否有人偶然发现了同一问题,这就是Go中的工作原理

func main() {
    privateKey := loadPrivateKey()
    h := sha256.New()
    h.Write([]byte(`your message`))
    d := h.Sum(nil)

    signature, err := rsa.SignPKCS1v15(rand.Reader, privateKey, crypto.SHA256, d)
    if err != nil {
        panic(err)
    }

    fmt.Printf("Signature in byte: %v\n\n", signature)

    encodedSig := base64.StdEncoding.EncodeToString(signature)

    fmt.Printf("Encoded signature: %v\n\n", encodedSig)
}