parent
140400064b
commit
66c86f0fd3
@ -1,5 +1,5 @@
|
|||||||
package go_library
|
package go_library
|
||||||
|
|
||||||
func Version() string {
|
func Version() string {
|
||||||
return "1.0.105"
|
return "1.0.6"
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
package wechatpayopen
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto"
|
||||||
|
"crypto/rand"
|
||||||
|
"crypto/rsa"
|
||||||
|
"encoding/base64"
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 通过私钥对字符串以 SHA256WithRSA 算法生成签名信息
|
||||||
|
func (c *Client) signSHA256WithRSA(source string, privateKey *rsa.PrivateKey) (signature string, err error) {
|
||||||
|
if privateKey == nil {
|
||||||
|
return "", fmt.Errorf("private key should not be nil")
|
||||||
|
}
|
||||||
|
h := crypto.Hash.New(crypto.SHA256)
|
||||||
|
_, err = h.Write([]byte(source))
|
||||||
|
if err != nil {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
hashed := h.Sum(nil)
|
||||||
|
signatureByte, err := rsa.SignPKCS1v15(rand.Reader, privateKey, crypto.SHA256, hashed)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return base64.StdEncoding.EncodeToString(signatureByte), nil
|
||||||
|
}
|
Loading…
Reference in new issue