初学 Golang 想要用 Golang 实现 PHP 上的 openssl_pkcs12_read 函数

发布于 2022-09-05 01:59:29 字数 509 浏览 8 评论 0

初学Golang想用go写一个api接口实现之前在PHP上做的这段加密功能


        static public function sign($plainText,$pwd){
            $certs = array();
            $sign = "";
            openssl_pkcs12_read(file_get_contents("xxxx.pfx"),$certs,$pwd); //读取公钥、私钥
            openssl_sign($plainText,$sign,$certs['pkey']);//注册生成加密信息  
            return base64_encode($sign);//base64转码加密信息
        }

查了Golang手册

import "golang.org/x/crypto/pkcs12"

尝试了里面的方法都报错,希望大家能解惑一下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

累赘 2022-09-12 01:59:29
var pfxData []byte
pfxData, err = ioutil.ReadFile(path)
if err != nil {
    return
}
var priv interface{}
//解析证书
priv, cert, err = pkcs12.Decode(pfxData, password)
if err != nil {
    return
}
private = priv.(*rsa.PrivateKey)
str:="test string"
rng := rand.Reader
hashed := sha256.Sum256([]byte(fmt.Sprintf("%x", sha256.Sum256([]byte(str)))))
signer, err := rsa.SignPKCS1v15(rng, private , crypto.SHA256, hashed[:])
if err != nil {
    return "", err
}
return base64Encode(signer), nil
海风掠过北极光 2022-09-12 01:59:29
pfxFile, err := ioutil.ReadFile("xxx.pfx")
if err != nil {
    fmt.Println(err)
}
str := "加密串"
private, _, err := pkcs12.Decode(pfxFile, "密码")
h := crypto.Hash.New(crypto.SHA1)
h.Write([]byte(str))
hashed := h.Sum(nil)
rng := rand.Reader
prive := private.(*rsa.PrivateKey)
encodeTxt, _ := prive.Sign(rng, hashed, crypto.SHA1)

 fmt.Println(Base64Encode(encodeTxt))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文