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
}
目录
相关文章
|
2月前
|
算法 安全 Go
RSA加密算法详解与Python和Go实现
RSA加密算法详解与Python和Go实现
155 1
|
2月前
|
安全 测试技术 Go
Python 和 Go 实现 AES 加密算法的技术详解
Python 和 Go 实现 AES 加密算法的技术详解
128 0
|
3月前
|
算法 安全 网络安全
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
164 0
|
4月前
|
JSON 算法 API
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
|
4月前
|
存储 安全 算法
公钥加密在网络安全中的角色
【8月更文挑战第24天】
63 0
|
5月前
|
安全 数据安全/隐私保护
支付系统之微信支付08-身份认证,公钥和私钥的含义,私钥自己有的,作为唯一的控制系统,私钥加密,公钥解密是为了身份认证
支付系统之微信支付08-身份认证,公钥和私钥的含义,私钥自己有的,作为唯一的控制系统,私钥加密,公钥解密是为了身份认证
|
15天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
26 7
|
15天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
15天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
92 71
|
14天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
100 67