GO怎么实现RSA的公钥加密私钥解密
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章将为大家详细讲解有关GO怎么实现RSA的公钥加密私钥解密,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package main import (
千家信息网最后更新 2025年01月23日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安全错误
数据库的锁怎样保障安全
网络安全工程师证书报考步骤
苏州直播系统软件开发
棋牌软件开发程序员
一把年网络技术有限公司
计算机网络技术证书有用处吗
软件开发专业的就业现状
数据库共享平台开发
奥奇传说服务器调用第三方
普陀区个性化软件开发推荐
湖北省捌零壹网络安全研究院
软件开发版本化
完成oa服务器的迁移更换工作
黑魂3无法登录到服务器2022
数据库审计怎么开始
亚信安全邮箱服务器怎么填
如何访问ecs数据库
百度怎样解除网络安全
浙江精英网络技术开发机构
华硕服务器装系统
网络安全辩论赛正方一辩
计算机三级网络技术网
三星7250服务器报价
软件开发行业总产值
软件开发网站运营保密协议
接受网络安全与保密检查
网络安全手抄报顺口溜五字
asp是商业资源数据库吗
乌鲁木齐虚拟化服务器
计算机网络链路状态数据库定义
图书馆网络安全的策划