1,加密
import (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"encoding/base64"
"encoding/pem"
)
func RSAEncrypt(password string) string {
publicKeyStr := "" // 公钥
buf := []byte(publicKeyStr)
block, _ := pem.Decode(buf)
//x509解码
publicKeyInterface, err := x509.ParsePKIXPublicKey(block.Bytes)
if err != nil {
panic(err)
}
//类型断言
publicKey := publicKeyInterface.(*rsa.PublicKey)
//对明文进行加密
plainText := []byte(password)
cipherText, err := rsa.EncryptPKCS1v15(rand.Reader, publicKey, plainText)
if err != nil {
panic(err)
}
//返回密文
cipherBase := base64.StdEncoding.EncodeToString(cipherText)
return cipherBase
2,解密
import (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"encoding/base64"
"encoding/pem"
)
func RSADecrypt(password string) string {
privateKeyStr := "" // 私钥
buf := []byte(privateKeyStr)
//pem解码
block, _ := pem.Decode(buf)
//X509解码
privateKey, err := x509.ParsePKCS1PrivateKey(block.Bytes)
if err != nil {
panic(err)
}
//对密文进行解密
prPlainText, _ := rsa.DecryptPKCS1v15(rand.Reader, privateKey, []byte(password))
//返回明文
return string(prPlainText)
}