RSA加密简介
- RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。
RSA概括
公钥加密、私钥解密、私钥签名、公钥验签。
GO语言生成RSA秘钥对
生成秘钥对供JAVA对接,因此使用x509.MarshalPKCS8PrivateKey方法生成PKCS#8字节的秘钥
1 | package main |
GO语言RSA加解密
1 | // RSAEncrypt 解析公钥 |
因对接java,故使用x509.ParsePKCS8PrivateKey()读取私钥,分段解密
1 | // rsaPrivateDe 解密读取秘钥 |
GO语言RSA加签验签
1 | // 私钥加签 |
1 | func RsaVerySignWithSha1Base64(originalData, signData string) error { |