golang RSA2加密/解密
$go get github.com/wenzhenxi/gorsa
test.go文件的内容
运行: $go run test.go
package main import (
"fmt"
"log"
"errors"
"github.com/wenzhenxi/gorsa"
) var Pubkey = `-----BEGIN 公钥-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtjjnowvv475Aa+yxLRJu
wS8P6wIxtOmHbB9A5Vb77js9WaUYnWsC2R0JCz+24RZuuC4nn4whZvwMKBpI9WQh
vq6y4q07pnpFpu0x6jcSXNn/e+CWuC6HQXSorkwd2gP5pqQVsiT/a1xPRVpPVDpF
0AOR2TRDbXQx7vi/mmHnd4NKKxkjbmNG/tpjjpjuMhKj1geJeG46lcfpnvEUIYkK
ac1wgED09jcFhZDdtKV3f4VWUw+UntZLMIr1jZQn70HyVvSa8VvcFTchpC6+fE9l
l0D6Bb7Q9LD1rfs9SidGwX27BH05dx+aY1H9v8GTRHHwXrpvUP+VsTfH2puS8Kv7
awIDAQAB
-----END 公钥-----
` var Pirvatekey = `-----BEGIN 私钥-----
MIIEpAIBAAKCAQEAtjjnowvv475Aa+yxLRJuwS8P6wIxtOmHbB9A5Vb77js9WaUY
nWsC2R0JCz+24RZuuC4nn4whZvwMKBpI9WQhvq6y4q07pnpFpu0x6jcSXNn/e+CW
uC6HQXSorkwd2gP5pqQVsiT/a1xPRVpPVDpF0AOR2TRDbXQx7vi/mmHnd4NKKxkj
bmNG/tpjjpjuMhKj1geJeG46lcfpnvEUIYkKac1wgED09jcFhZDdtKV3f4VWUw+U
ntZLMIr1jZQn70HyVvSa8VvcFTchpC6+fE9ll0D6Bb7Q9LD1rfs9SidGwX27BH05
dx+aY1H9v8GTRHHwXrpvUP+VsTfH2puS8Kv7awIDAQABAoIBAHc2NTxy48bvwX+Z
wrPE+lZCLrzFm7VKjkELFU60oG7TrKhIHRlnV96oYzFLxp3tKhQuhdeYOoYAYQef
Ypm/n1/7NKadRIf+ODEjvmMHEmlSaRUm8hOexPfqlSwqOeFWdm4xrMv17m/TXTz2
/y0QTnnuy+z4hyBFQyGe9OLQKDkDvXpbXqIrAK3kSuUeyQSZm1Ifq6WEQ/cRmMkd
bmjPbZ+QOeg2vvnuwQLNooANEVd//cT9M5vK+iiP6MvNz3IEqBqn4ZcOjqhfLQ7V
w2G09Ge1SL/v0cG9weSM6nsdEFxsKM7S3Ybtz6LMpbVC2WX94zyWaCJXRdbHzFzM
D8NzerkCgYEA41B5QETnLaoQrEm6rsKbO19p8Ha0cNTP4Ybk/gk+qk7LLBcT1Mze
vOfgV2adAkMSr78hF+MHjn2DgnCEiFdbMZLj6VRobzLWvVLaIEERkmJtQV9ef1GP
C2EzyTxsFBXNBpGDLOREbiG8euGWjpvU8wvj5yUGIWORzZWUaqrtTV0CgYEAzTe0
eZIGRW0w4y0YGr4FaDzxejzkMK7l0kfJ7qNaPMOdTzKRqV4TM4karClvMKI5kuLZ
MpZzUVotMfkqqfQsmWXyZXGBkai9rwrygP1HsC1rSFGusCV6m71axZXZ8GEimnVI
kEqvPGvtdW8Z3CpSel5AHC24sYWmrOPQaEPQl2cCgYBQr/0KOisRQ3+9mEJCzGNL
tPem2ov8TR4pQLfCEMgErgliciKg88PQrEIu5Aaxidt1NNPrZbQF+TmYMJZqyw9c
znZGGackaZheBa3VqyMwoe2EOfUSHoI3GN7H/MGkc4SeY0J7yd8cdK8xsye9IUV6
rGrOXo8JhQ15OzI+lsO7JQKBgQC4IM0Lbxu1Wz1L9//yrqBHYLcBiHTtwV9vhv4F
4gdrEdCpaKQNJN1xlgiahCrBpiymQGfE3fzl91Upy3ieOPlzQWd14Zvxx0c6MUZY
ueiCiJ4Dq1ZjsZ0K86DoO4XqCh10HNtYq8oDGotanK7FPiv2o24+Wj+m+FYONfGe
O4qC7QKBgQDclDo5hOyDIaIm/qvq00ZAIudXcoZeKqdjnfXWC2tYB97guqXZPnFa
zE1rstdDO1c8OTZ1Av1VmnI5dI1OUeGZA6nxol6m1LbMfyME/7nQYW+UBCVLqtTx
NY75jbQrg1BTfEGSm9pujsEhVGdK3JiQHbaiw/q5p74dKjlL4HF8Kg==
-----END 私钥-----
` func main() {
// 公钥加密私钥解密
if err := applyPubEPriD(); err != nil {
log.Println(err)
}
// 公钥解密私钥加密
if err := applyPriEPubD(); err != nil {
log.Println(err)
}
} // 公钥加密私钥解密
func applyPubEPriD() error {
pubenctypt, err := gorsa.PublicEncrypt(`hello world`,Pubkey)
if err != nil {
return err
}
fmt.Println("%s is:", pubenctypt)
pridecrypt, err := gorsa.PriKeyDecrypt(pubenctypt,Pirvatekey)
if err != nil {
return err
}
fmt.Println("%s is:", pridecrypt)
if string(pridecrypt) != `hello world` {
return errors.New(`解密失败`)
}
return nil
} // 公钥解密私钥加密
func applyPriEPubD() error {
prienctypt, err := gorsa.PriKeyEncrypt(`hello world`,Pirvatekey)
if err != nil {
return err
} pubdecrypt, err := gorsa.PublicDecrypt(prienctypt,Pubkey)
if err != nil {
return err
}
if string(pubdecrypt) != `hello world` {
return errors.New(`解密失败`)
}
return nil
}
golang RSA2加密/解密的更多相关文章
- golang AES/ECB/PKCS5 加密解密 url-safe-base64
因为项目的需要用到golang的一种特殊的加密解密算法AES/ECB/PKCS5,但是算法并没有包含在标准库中,经过多次失败的尝试,终于解码成功,特此分享: /* 描述 : golang AES/EC ...
- [Golang] base64加密与解密
首先解释以下什么是base64(来自百度百科): Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64 ...
- golang实现aes-cbc-256加密解密过程记录
我为什么吃撑了要实现go的aes-cbc-256加密解密功能? 之前的项目是用php实现的,现在准备用go重构,需要用到这个功能,这么常用的功能上网一搜一大把现成例子,于是基于go现有api分分钟实现 ...
- GOLANG 加密,解密,GUID 小方法
golang的 MD5加密.BASE64解密 guid 的代码: /** * 用于加密,解密,(包含MD5加密和base64加密/解密)以及GUID的生成 * 时间: * zhifieya */ p ...
- Golang之AES/DES加密解密
AES/DES加密/解密涉及4个概念:1. Block, 也叫分组, 相应加密/解密的算法. 2. BlockMode, 模式, 相应加密/解密的处理.3. InitalVectory, 初始向量4. ...
- golang 私钥"加密"公钥"解密"
---恢复内容开始--- 之前工作主要使用C/C++与银行/第三方支付对接,但C/C++无法满足客户"当天给协议明天实盘上载"的开发速度以及现公司一些特殊情况,所以决定用go来 ...
- golang实现RSA加密解密
非对称加密示意图: 在此可以看到,非对称加密是通过两个密钥(公钥-私钥)来实现对数据的加密和解密的.公钥用于加密,私钥用于解密. RSA公钥和私钥生成: package main import ( & ...
- .NET Core 使用RSA算法 加密/解密/签名/验证签名
前言 前不久移植了支付宝官方的SDK,以适用ASP.NET Core使用支付宝支付,但是最近有好几位用户反应在Linux下使用会出错,调试发现是RSA加密的错误,下面具体讲一讲. RSA在.NET C ...
- 加密解密 AES RSA MD5 SHA
加密解密: 对称加密:加密和解密相同秘钥.常见算法:AES, XTEA, 3DES. 非对称加密: 公钥加密 私钥加密. 加密和解密秘钥不同.常见算法:RSA OpenSSL> genrsa - ...
随机推荐
- 用Python实现十大经典排序算法-插入、选择、快速、冒泡、归并等
本文来用图文的方式详细讲解了Python十大经典排序算法 —— 插入排序.选择排序.快速排序.冒泡排序.归并排序.希尔排序.插入排序.桶排序.基数排序.计数排序算法,想要学习的你们,继续阅读下去吧,如 ...
- SpringMVC-结果跳转方式
结果跳转方式 目录 结果跳转方式 1. ModelAndView 2. ServletAPI 3. SpringMVC实现 1. 无需视图解析器 2. 使用视图解析器 1. ModelAndView ...
- SpringCloud-config分布式配置
为什么要统一管理微服务配置? 随着微服务不断的增多,每个微服务都有自己对应的配置文件.在研发过程中有测试环境.UAT环境.生产环境,因此每个微服务又对应至少三个不同环境的配置文件.这么多的配置文件,如 ...
- markdown基本语法说明
作为一个java程序员,要接触的东西很多,时不时 就要学习,最近写文档的时候发现,markdown很有意思,就记录下来,作为一个简单的说明和学习 : 1.标题 # 这是一级标题 ## 这是二级标 ...
- pytest文档2-pytest+Allure+jenkins+邮箱发送
前言: 上一章节讲解了tomcat+jenkins的环境搭建,这一章节主要讲一下Allure报告在jenkins上的配置 步骤: 1.新建一个item 2.输入项目的名称,选择自由风格,点击保存 3. ...
- SpringCloud实战 | 第一篇:Windows搭建Nacos服务
前言 为什么放弃eureka选择nacos?本地开发环境需要搭建nacos-server,想着是很简单的事但是被一些文章(少了关键必要的步骤)给带偏了,所以亲测成功后写了这篇文章. 搭建nacos-s ...
- 认识一下python
python 目录 python 1.python创始人 2.python的设计目标 3.为什么使用python 4.python的特点 5.python的优缺点 1.python创始人 1.1989 ...
- JVM强引用、软引用、弱引用、虚引用、终结器引用垃圾回收行为总结
JVM引用 我们希望能描述这样一类对象: 当内存空间还足够时,则能保留在内存中:如果内存空间在进行垃圾收集后还是很紧张,则可以抛弃这些对象. -[既偏门又非常高频的面试题]强引用.软引用.弱引用.虚引 ...
- Book of Shaders 02 - 矩阵:二维仿射变换练习
0x00 一些废话 如果要深入学习 CG (Computer Graphics,计算机图形学),必然要学习相关的数学知识.CG 涉及到多个不同的领域,根据所研究领域的不同,也会涉及到不同的数学分支.但 ...
- 教你怎么"白嫖"图床
本次白嫖适用于有自己域名的. 访问 又拍云,注册 注册好后,访问又拍云联盟 按照说明申请即可 结束 静等通过即可,经过我与又拍云联系核实他们审核通过都会在每周五的下午18:00统一发送审核结果邮件通知 ...