$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. CC2530的ADC采集外部电压

    初窥ZIGBEE 要在zigbee的组网中加入烟雾传感器的模块,所以需要用到cc2530的ADC对传感器输出的模拟信号进行采样.下面是自己对实现用CC2530的ADC采集外部电压的程序过程. 以下是A ...

  2. 知识点干货——CSS动画

    CSS动画 (transition.animation) //2D动画 transform:translate(); /*偏移*/ transform:rotate(); /*旋转角度*/ trans ...

  3. 11_IO多路复用

    1.IO概述 input 和 output: 是在内存中存在的数据交换操作 内存和磁盘交换: 文件读写, 打印 内存和网络交换: recv send recvfrom, sendto IO密集型程序: ...

  4. JVM学习第二天(垃圾回收器和内存分配策略)大章

    说道垃圾回收器大家应该都会有所了解,GC白,当然说道具体的可能就不是很清楚了,今天我们就来玩一玩; GC要做的事情: 第一步:确定堆中需要回收的对象; 第二步:什么时候回收; 第三步:怎样回收 为什么 ...

  5. Oracle快速建表Sample

    表定义: create table tb_triple( id number(8,0) primary key, name nvarchar2(20), birthday date ) 充值: ins ...

  6. [Java数据结构]Map的contiansKey和List的contains比较

    Map的containskey方法使用哈希算法查找key是否存在,运算时间是常数: List的contains方法是将元素在列表中遍历,运算时间和列表长度有关. 我使用两种不同SQL语句获取两种不同类 ...

  7. vue 实现原理及简单示例实现

    目录 相关html代码,用于被解析绑定数据 observer代码 Dep代码 Watcher 代码 Compile 代码 vue 简要构造函数 创建vue实例 结语 主要理解.实现如下方法: Obse ...

  8. vue.js 的安装

    包含vue的脚手架的安装. 1,到项目目录下输入 cnpm i -g vue-cli 2,安装完毕后咱们看看.输入 vue 即可看到vue的安装情况. 3,输入 vue list 即可看到框架的选择 ...

  9. 【NOIP2013模拟】太鼓达人

    题目描述 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和lydrainbo ...

  10. springBoot 使用webSocket

    本文(2019年6月18日 飞快的蜗牛博客) 有许多人走着走着,就迷失了自己,所以不论发生了什么,有时候抱着自己去静下来想想,要好好的对待自己:"钱塘江上潮信来,今日方知我是我", ...