为了账号安全,请及时绑定邮箱和手机立即绑定

go 如何实现PHP RSA签名

go 如何实现PHP RSA签名

PHP
红糖糍粑 2019-03-16 03:46:19
$pkeyid = openssl_pkey_get_private ( $priv_key ); openssl_sign ( $params_str, $signMsg, $pkeyid, OPENSSL_ALGO_SHA1 ); openssl_free_key ( $pkeyid ); $signMsg = base64_encode ( $signMsg ); 请问用GO如何实现PHP这样的签名我写的代码如下,始终不成功 func getSing(splice string, priKey []byte) (encrypt string) { PEMBlock, _ := pem.Decode(priKey) if PEMBlock == nil { log.Fatal("PEM解析错误") } privkey, err := x509.ParsePKCS8PrivateKey(PEMBlock.Bytes) if err != nil { log.Fatal(err) } pri, ok := privkey.(*rsa.PrivateKey) if ok { // SH256 := crypto.SHA256 // hashed := sha256.Sum256([]byte(fmt.Sprintf("%x", sha256.Sum256([]byte(splice))))) // hashed := sha256.Sum256([]byte(nil)) // sign, err := rsa.SignPKCS1v15(rand.Reader, pri, SH256, hashed[:]) SH1 := crypto.SHA1 // hashed := sha1.Sum([]byte(fmt.Sprintf("%x", sha1.Sum([]byte(splice))))) hashed := sha1.Sum([]byte(nil)) sign, err := rsa.SignPKCS1v15(rand.Reader, pri, SH1, hashed[:]) if err != nil { log.Fatal(err) } return Base64Encode(sign) } else { log.Fatal(ok) } return } 求大家帮忙解决,我肯定哪里错了,导致签名不对,验证签名也不对
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

楼上回答正确

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 525 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信