$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加密/解密的更多相关文章

  1. golang AES/ECB/PKCS5 加密解密 url-safe-base64

    因为项目的需要用到golang的一种特殊的加密解密算法AES/ECB/PKCS5,但是算法并没有包含在标准库中,经过多次失败的尝试,终于解码成功,特此分享: /* 描述 : golang AES/EC ...

  2. [Golang] base64加密与解密

    首先解释以下什么是base64(来自百度百科): Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64 ...

  3. golang实现aes-cbc-256加密解密过程记录

    我为什么吃撑了要实现go的aes-cbc-256加密解密功能? 之前的项目是用php实现的,现在准备用go重构,需要用到这个功能,这么常用的功能上网一搜一大把现成例子,于是基于go现有api分分钟实现 ...

  4. GOLANG 加密,解密,GUID 小方法

    golang的 MD5加密.BASE64解密  guid 的代码: /** * 用于加密,解密,(包含MD5加密和base64加密/解密)以及GUID的生成 * 时间: * zhifieya */ p ...

  5. Golang之AES/DES加密解密

    AES/DES加密/解密涉及4个概念:1. Block, 也叫分组, 相应加密/解密的算法. 2. BlockMode, 模式, 相应加密/解密的处理.3. InitalVectory, 初始向量4. ...

  6. golang 私钥"加密"公钥"解密"

    ---恢复内容开始---   之前工作主要使用C/C++与银行/第三方支付对接,但C/C++无法满足客户"当天给协议明天实盘上载"的开发速度以及现公司一些特殊情况,所以决定用go来 ...

  7. golang实现RSA加密解密

    非对称加密示意图: 在此可以看到,非对称加密是通过两个密钥(公钥-私钥)来实现对数据的加密和解密的.公钥用于加密,私钥用于解密. RSA公钥和私钥生成: package main import ( & ...

  8. .NET Core 使用RSA算法 加密/解密/签名/验证签名

    前言 前不久移植了支付宝官方的SDK,以适用ASP.NET Core使用支付宝支付,但是最近有好几位用户反应在Linux下使用会出错,调试发现是RSA加密的错误,下面具体讲一讲. RSA在.NET C ...

  9. 加密解密 AES RSA MD5 SHA

    加密解密: 对称加密:加密和解密相同秘钥.常见算法:AES, XTEA, 3DES. 非对称加密: 公钥加密 私钥加密. 加密和解密秘钥不同.常见算法:RSA OpenSSL> genrsa - ...

随机推荐

  1. Maven 仓库镜像设置

    <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>al ...

  2. 出现jupyter notebook password or token提示需要token的处理方法

    很多朋友不知道下面的情况怎么处理,我给大家介绍一个方法! 出现这种情况很简单用下面这个地址就能进去了 (注意是你自己的 不是我这个)

  3. leetcode刷题-36有效的数独

    题目 判断一个 9x9 的数独是否有效.只需要根据以下规则,验证已经填入的数字是否有效即可. 数字 1-9 在每一行只能出现一次.数字 1-9 在每一列只能出现一次.数字 1-9 在每一个以粗实线分隔 ...

  4. 用c语言处理文件

    用c语言处理文件只需要用到几个简单的函数: 1.文件的打开和关闭 fopen()函数用来打开一个文件,该函数原型在头文件stdio.h中,调用的一般形式为 /* FILE 是c语言内置的一个结构体类型 ...

  5. linux(centos)下密码有效期和密码复杂度设置

    1.密码有效期 方法一: chage -l 用户名 查看用户的过期时间 chage -M 99999 用户名 用命令修改过期时间为永久 chage -M 90 用户名 设置密码有效期为90天 chag ...

  6. 漏洞扫描工具acunetix破解安装步骤

    Acunetix 12破解版安装教程 下载地址: 链接:https://pan.baidu.com/s/1jsKkrhOcx_O7ib7FQ6pidw 提取码:pwdj 1.下载软件压缩包文件,首先点 ...

  7. ⏰ Moment.js 宣布停止开发,现在该用什么?

    本文整理自 Monent.js 官方英文公告 https://momentjs.com/docs/#/-project-status/ Moment.js 宣布停止开发,进入维护状态. 这是一个大而全 ...

  8. MySQL索引的基本操作

    常见的索引类型 PROMARY KEY 主键索引,也是唯一索引,不允许重复数据. UNIQUE INDEX唯一索引,不允许有重复数据. INDEX 普通索引允许有重复数据. 组合索引,对多个字段添加索 ...

  9. Laravel Model查询结果的3种存储格式内存占用对比

    PHP Laravel框架支持Model查询数据后可以有多种方式返回数据,对新手会造成一些困扰,比如数组Model对象.集合.纯数组 今天从内存占用的角度对比一下3种数据返回方式 按数组Model对象 ...

  10. 使用maven纯注解集成ssm

    1.配置springMVC框架 第一步:导入包依赖 <!--配置springMVC--> <dependency> <groupId>javax.servlet.j ...