程序开发 · 2024年5月24日

Golang 相当于 Java 的 SHA256withRSA

当前位置: > > > > Golang 相当于 Java 的 SHA256withRSA

来源:stackoverflow
2024-04-23 11:39:20
0浏览
收藏

一分耕耘,一分收获!既然打开了这篇文章《Golang 相当于 Java 的 SHA256withRSA》,就坚持看下去吧!文中内容包含等等知识点…希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

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

解决方案

弄清楚如果有人偶然发现了同样的问题,这就是它在 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)
}

今天关于《Golang 相当于 Java 的 SHA256withRSA》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注公众号!