使用公钥加密,使用私钥解密
公钥和私钥不同
公钥可以公布给所有人
私钥只有自己保存
相比于对称加密,运算速度非常慢
加密过程:明文+公钥——>密文
解密过程:密文+私钥.../rsa"
"crypto/sha1"
"crypto/x509"
"encoding/pem"
"fmt"
)
// 使用对方的公钥的数据, 只有对方的私钥才能解开
func encrypt(..., _ := pem.Decode([]byte(publicKey))
// 读取公钥
pubKeyValue, err := x509.ParsePKIXPublicKey(pubBlock.Bytes...// 获取公钥, 生产环境往往是文件中读取, 这里为了测试方便, 直接生成了....比如SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法
6、ECDSA
因为在数字签名的安全性高, 基于ECC的DSA更高, 所以非常适合数字签名使用场景, 在SSH TLS有广泛使用,