golang 使用RSA签名和验签
当前主要有两种形式base64和hex:
-
base64
1.rsa类型签名import ( "crypto/rsa" "crypto/rand" ) signature, err := rsa.SignPKCS1v15(rand.Reader, privateKey.(*rsa.PrivateKey), crypto.SHA1, hash[:]) if err != nil { fmt.Printf("Error from signing: %s\n", err) return "", err } encoded := base64.StdEncoding.EncodeToString(signature)
2.rsa类型验签
import ( "crypto/rsa" ) rsa.VerifyPKCS1v15(pub *PublicKey, hash crypto.Hash, hashed []byte, sig []byte) error
-
hex
hex.DecodeString(s string)//解密
hex.EncodeToString(src []byte) string//加密