Go License 公钥 私钥 加密 解密

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Go License 公钥 私钥 加密 解密
package utils
import (
  "github.com/wenzhenxi/gorsa"
  "strings"
)
// 私钥加密
func RsaPemPriEncrypt(src string, privateKey string) (string, error) {
  var srcArr []string
  for true {
    if len(src) > 100 {
      srcArr = append(srcArr, src[:100])
      src = src[100:]
    } else {
      srcArr = append(srcArr, src)
      break
    }
  }
  var encArr []string
  for _, seg := range srcArr {
    enc, err := gorsa.PriKeyEncrypt(seg, privateKey)
    if err != nil {
      return "", err
    }
    encArr = append(encArr, enc)
  }
  return strings.Join(encArr, "\n"), nil
}
// 公钥解密
func RsaPemPubDecrypt(enc string, publicKey string) (string, error) {
  var srcArr []string
  encArr := strings.Split(enc, "\n")
  for _, seq := range encArr {
    src, err := gorsa.PublicDecrypt(seq, publicKey)
    if err != nil {
      return "", err
    }
    srcArr = append(srcArr, src)
  }
  return strings.Join(srcArr, ""), nil
}
// 公钥加密
func RsaPemPubEncrypt(src string, publicKey string) (string, error) {
  var srcArr []string
  for true {
    if len(src) > 100 {
      srcArr = append(srcArr, src[:100])
      src = src[100:]
    } else {
      srcArr = append(srcArr, src)
      break
    }
  }
  var encArr []string
  for _, seg := range srcArr {
    enc, err := gorsa.PublicEncrypt(seg, publicKey)
    if err != nil {
      return "", err
    }
    encArr = append(encArr, enc)
  }
  return strings.Join(encArr, "\n"), nil
}
// 私钥解密
func RsaPemPriDecrypt(enc string, privateKey string) (string, error) {
  var srcArr []string
  encArr := strings.Split(enc, "\n")
  for _, seq := range encArr {
    src, err := gorsa.PriKeyDecrypt(seq, privateKey)
    if err != nil {
      return "", err
    }
    srcArr = append(srcArr, src)
  }
  return strings.Join(srcArr, ""), nil
}
目录
相关文章
|
1月前
|
算法 安全 Go
RSA加密算法详解与Python和Go实现
RSA加密算法详解与Python和Go实现
94 1
|
1月前
|
安全 测试技术 Go
Python 和 Go 实现 AES 加密算法的技术详解
Python 和 Go 实现 AES 加密算法的技术详解
79 0
|
2月前
|
算法 安全 网络安全
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
112 0
|
3月前
|
JSON 算法 API
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
|
3月前
|
存储 安全 算法
公钥加密在网络安全中的角色
【8月更文挑战第24天】
52 0
|
4月前
|
安全 数据安全/隐私保护
支付系统之微信支付08-身份认证,公钥和私钥的含义,私钥自己有的,作为唯一的控制系统,私钥加密,公钥解密是为了身份认证
支付系统之微信支付08-身份认证,公钥和私钥的含义,私钥自己有的,作为唯一的控制系统,私钥加密,公钥解密是为了身份认证
|
8天前
|
存储 JSON 监控
Viper,一个Go语言配置管理神器!
Viper 是一个功能强大的 Go 语言配置管理库,支持从多种来源读取配置,包括文件、环境变量、远程配置中心等。本文详细介绍了 Viper 的核心特性和使用方法,包括从本地 YAML 文件和 Consul 远程配置中心读取配置的示例。Viper 的多来源配置、动态配置和轻松集成特性使其成为管理复杂应用配置的理想选择。
27 2
|
6天前
|
Go 索引
go语言中的循环语句
【11月更文挑战第4天】
15 2
|
6天前
|
Go C++
go语言中的条件语句
【11月更文挑战第4天】
19 2
|
11天前
|
Ubuntu 编译器 Linux
go语言中SQLite3驱动安装
【11月更文挑战第2天】
34 7