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
}
目录
相关文章
|
3月前
|
Go 数据安全/隐私保护
go 基于gin编写encode、decode、base64加密接口
go 基于gin编写encode、decode、base64加密接口
28 2
|
4月前
|
NoSQL 测试技术 Go
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
|
24天前
|
JSON 算法 API
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
|
24天前
|
存储 安全 算法
公钥加密在网络安全中的角色
【8月更文挑战第24天】
35 0
|
2月前
|
安全 数据安全/隐私保护
支付系统之微信支付08-身份认证,公钥和私钥的含义,私钥自己有的,作为唯一的控制系统,私钥加密,公钥解密是为了身份认证
支付系统之微信支付08-身份认证,公钥和私钥的含义,私钥自己有的,作为唯一的控制系统,私钥加密,公钥解密是为了身份认证
|
7天前
|
程序员 Go PHP
为什么大部分的 PHP 程序员转不了 Go 语言?
【9月更文挑战第8天】大部分 PHP 程序员难以转向 Go 语言,主要因为:一、编程习惯与思维方式差异,如语法风格和编程范式;二、学习成本高,需掌握新知识体系且面临项目压力;三、职业发展考量,现有技能价值及市场需求不确定性。学习新语言虽有挑战,但对拓宽职业道路至关重要。
35 10
|
5天前
|
Go API 开发者
深入探讨:使用Go语言构建高性能RESTful API服务
在本文中,我们将探索Go语言在构建高效、可靠的RESTful API服务中的独特优势。通过实际案例分析,我们将展示Go如何通过其并发模型、简洁的语法和内置的http包,成为现代后端服务开发的有力工具。
|
7天前
|
算法 程序员 Go
PHP 程序员学会了 Go 语言就能唬住面试官吗?
【9月更文挑战第8天】学会Go语言可提升PHP程序员的面试印象,但不足以 solely “唬住” 面试官。学习新语言能展现学习能力、拓宽技术视野,并增加就业机会。然而,实际项目经验、深入理解语言特性和综合能力更为关键。全面展示这些方面才能真正提升面试成功率。
27 10
|
7天前
|
编译器 Go
go语言学习记录(关于一些奇怪的疑问)有别于其他编程语言
本文探讨了Go语言中的常量概念,特别是特殊常量iota的使用方法及其自动递增特性。同时,文中还提到了在声明常量时,后续常量可沿用前一个值的特点,以及在遍历map时可能遇到的非顺序打印问题。
|
4天前
|
存储 监控 数据可视化
Go 语言打造公司监控电脑的思路
在现代企业管理中,监控公司电脑系统对保障信息安全和提升工作效率至关重要。Go 语言凭借其高效性和简洁性,成为构建监控系统的理想选择。本文介绍了使用 Go 语言监控系统资源(如 CPU、内存)和网络活动的方法,并探讨了整合监控数据、设置告警机制及构建可视化界面的策略,以满足企业需求。
20 1