需求:公要证书格式 .cer 获取公钥用来加密
简单的demo
// CER_CERTIFICATE_RSA_Encrypt .cer公钥文件 RSA加密 (plainText 需要加密的信息, path 公钥证书地址)
func CER_CERTIFICATE_RSA_Encrypt(plainText []byte, path string) ([]byte, error) {
// 读公钥文件
cerKey, err := ioutil.ReadFile(path)
if err != nil {
return nil, err
}
tsamaxInfo := base64.StdEncoding.EncodeToString(cerKey)
tsamaxCert := `
-----BEGIN CERTIFICATE-----
` + tsamaxInfo + `
-----END CERTIFICATE-----`
block, _ := pem.Decode([]byte(tsamaxCert))
x509Cert, err := x509.ParseCertificate(block.Bytes)
if err != nil {
return nil, err
}
publicKey := x509Cert.PublicKey.(*rsa.PublicKey)
// 对明文进行加密
cipherText, err := rsa.EncryptPKCS1v15(rand.Reader, publicKey, plainText)
if err != nil {
return nil, err
}
// 返回密文
return cipherText, nil
}