700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > golang实现RSA加密解密算法

golang实现RSA加密解密算法

时间:2023-01-12 22:44:00

相关推荐

golang实现RSA加密解密算法

golang实现RSA加密解密算法

前言一、生成密钥对(公钥私钥)二、根据公钥加密二、根据私钥解密总结

前言

直接看正文吧!


一、生成密钥对(公钥私钥)

代码如下(示例):

//生成私钥privateKey, err := rsa.GenerateKey(rand.Reader, 2048)if err != nil {panic(err)}//生成公钥publicKey := privateKey.PublicKey

二、根据公钥加密

代码如下(示例):

encryptedBytes, err := rsa.EncryptOAEP(sha256.New(),rand.Reader,&publicKey,[]byte("测试哈哈哈"),//需要加密的字符串nil)

二、根据私钥解密

代码如下(示例):

decryptedBytes, err := privateKey.Decrypt(nil, encryptedBytes, &rsa.OAEPOptions{Hash: crypto.SHA256})


总结

完整代码如下(示例):

//RSA加密和解密package mainimport ("crypto""crypto/rand""crypto/rsa""crypto/sha256""fmt")func main() {//生成私钥privateKey, err := rsa.GenerateKey(rand.Reader, 2048)if err != nil {panic(err)}//生成公钥publicKey := privateKey.PublicKey//根据公钥加密encryptedBytes, err := rsa.EncryptOAEP(sha256.New(),rand.Reader,&publicKey,[]byte("测试哈哈哈"),//需要加密的字符串nil)if err != nil {panic(err)}fmt.Println("encrypted bytes: ", encryptedBytes)//根据私钥解密decryptedBytes, err := privateKey.Decrypt(nil, encryptedBytes, &rsa.OAEPOptions{Hash: crypto.SHA256})if err != nil {panic(err)}fmt.Println("decrypted message: ", string(decryptedBytes))}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。