GO怎么实现RSA的公钥加密私钥解密
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关GO怎么实现RSA的公钥加密私钥解密,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package main import (
千家信息网最后更新 2026年11月01日GO怎么实现RSA的公钥加密私钥解密
这篇文章将为大家详细讲解有关GO怎么实现RSA的公钥加密私钥解密,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/base64" "encoding/pem" "errors" "fmt") // 可通过openssl产生//openssl genrsa -out rsa_private_key.pem 1024var privateKey = []byte(`-----BEGIN RSA PRIVATE KEY-----MIICXQIBAAKBgQCrGh2sc5AKD1EQ8WdA1iWF4m7wXtO6WoS7Dtfd0Jm2ud+LKBQ+e7R6YIXnwfEKB/4Jm+jNtCi7/Zrx5gtEpUuVAyrEo5+qr5al5KibeJq3xyI/626IBsDMFX5o3WOoXceTF7+lgi6r+OuokqFJgpeh7YANXQ8Y8mn8ucw+Ly+LbQIDAQABAoGAGgoxbC3yP/WwyrlSk4WD1Gpvo9lqs7PO+4D4zWNP4YVMRitlWVUOVImYF3tmqbYprWCy/4tpn6KrECGImXvmkplXPxd4x3W+haZftx3VjTwh6fvT9yHp4swXxN+hLMItDdIOWS4U6wVJa77Dy7VfK303LZrPLqnxkf4oEywp5YECQQDZOz1WD7nOqOiyAlwDhfeLTmArN0f+gV6RLrxMp2XRqC2DN5nMq5O5BVVMK9LBgArNqYfxWYuMa3K2qliRDPPxAkEAyaNWq/fDvjpK9TgztqsHIiG+cUQpWI759zt5qHNA+QF4L43dtAVZzBR/uam1jnRuM6K0ZCSZo2ITiqapmk8bPQJAEd9d3IbOssIS4xJun5uWElAQeX3C3p2mOiuuMmBTcDx2AiXA8aXsMXzO18WDQYhXWzRniuPjJ1pvxbeeMdDvAQJBAMDhuZAJEzrOAlQurfFICyvQQZ+Rx0dKhbzFLOxBS96mVDSRLYn+MFbzKPcOa3lY0O4d7xd4l2td7zmLkePlVjUCQQCY8VuIfKc0+AWvPnktKXbx9bBdJZSDginZM5cu7pdxW0uB9KZoLqgbGLIvWrLyA6SBqo87Q1j1//wFgLP+A2Gn-----END RSA PRIVATE KEY-----`) //openssl//openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pemvar publicKey = []byte(`-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrGh2sc5AKD1EQ8WdA1iWF4m7wXtO6WoS7Dtfd0Jm2ud+LKBQ+e7R6YIXnwfEKB/4Jm+jNtCi7/Zrx5gtEpUuVAyrEo5+qr5al5KibeJq3xyI/626IBsDMFX5o3WOoXceTF7+lgi6r+OuokqFJgpeh7YANXQ8Y8mn8ucw+Ly+LbQIDAQAB-----END PUBLIC KEY-----`) // 加密func RsaEncrypt(origData []byte) ([]byte, error) { //解密pem格式的公钥 block, _ := pem.Decode(publicKey) if block == nil { return nil, errors.New("public key error") } // 解析公钥 pubInterface, err := x509.ParsePKIXPublicKey(block.Bytes) if err != nil { return nil, err } // 类型断言 pub := pubInterface.(*rsa.PublicKey) //加密 return rsa.EncryptPKCS1v15(rand.Reader, pub, origData)} // 解密func RsaDecrypt(ciphertext []byte) ([]byte, error) { //解密 block, _ := pem.Decode(privateKey) if block == nil { return nil, errors.New("private key error!") } //解析PKCS1格式的私钥 priv, err := x509.ParsePKCS1PrivateKey(block.Bytes) if err != nil { return nil, err } // 解密 return rsa.DecryptPKCS1v15(rand.Reader, priv, ciphertext)} func main() { data, _ := RsaEncrypt([]byte("test dataΩ...2")) fmt.Println(base64.StdEncoding.EncodeToString(data)) origData, _ := RsaDecrypt(data) fmt.Println(string(origData))}关于"GO怎么实现RSA的公钥加密私钥解密"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
公钥
加密
篇文章
更多
格式
不错
实用
内容
文章
知识
类型
可通
参考
帮助
有关
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳科技互联网
北京互联网科技有限公司
兼蜜互联网科技
重庆威客帮互联网科技
湖南诚度互联网科技有限公司
互联网科技有哪些公司
互联网还是高科技吗
深圳市罗太互联网科技有限公司
晋城互联网科技
广州千川互联网科技有限公司
广州富喜互联网络科技
互联网时代科技型公司的机会
互联网科技机房
版纳互联网科技选哪家
西安左小互联网科技有限公司
马化腾互联网科技教学
玉溪新华互联网科技怎么选
青岛互联网科技园
瑞安市蟠桃会互联网科技有限公司
武汉亿视互联网科技有限公司
互联网科技金融公司
上海喔噻互联网科技
互联网高科技股票
互联网科技创新企业排名
富国互联网科技创新基金
华服互联网科技官网
互联网科技大赛获奖感言
区块链结合互联网科技
长沙渺峰互联网科技有限公司
张家口科技产业互联网平台