| 1234567891011121314151617181920212223242526272829 |
- package rsa
- import (
- "crypto"
- "crypto/rsa"
- "encoding/base64"
- "log"
- )
- func main() {
- // 1、对base64编码的签名内容进行解码,返回签名字节
- a := "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCbtzmEy7zEUDsskOHI8TFGBG/slgXIvzzO7bcejLyEiSMbTtZMNgGFewpYGaAb1fCMTUuc5HQrKx4T/qr2C2nkw0WjroE5UrykYag6qgpx2WXc68+cn0mODgaeczWnt0gjCqRn+lE1O9wxPbJwL85ZH58cWFjha1AMedeh5lg9iQIDAQAB"
- bytes, err := base64.StdEncoding.DecodeString(a)
- if err != nil {
- log.Fatal(err)
- }
- // 2、选择hash算法,对需要签名的数据进行hash运算
- myhash := crypto.SHA256
- hashInstance := myhash.New()
- hashInstance.Write(data)
- hashed := hashInstance.Sum(nil)
- // 3、读取公钥文件,解析出公钥对象
- publicKey, err := ReadParsePublicKey(filename)
- if err != nil {
- return err
- }
- // 4、RSA验证数字签名(参数是公钥对象、哈希类型、签名文件的哈希串、签名后的字节)
- return rsa.VerifyPKCS1v15(publicKey, myhash, hashed, bytes)
- }
|