在 Go 语言开发中,我们常会用到加密、签名、证书管理等功能,比如接口通信要 AES 加密,用户登录要 RSA 签名,服务部署要生成 TLS 证书。虽然 Go 原生crypto
包能满足基础需求,但代码复杂冗余。
今天推荐一个宝藏开源库——forgoer/openssl,它用简洁的API封装了OpenSSL的常用加密功能,无论是AES、RSA还是HMAC,通通只需一行代码搞定!
forgoer/openssl 是一个轻量级的Go语言库,对OpenSSL的对称加密(如AES、DES、3DES)和非对称加密(如RSA)进行了优雅封装。
开发者无需深入OpenSSL底层细节,即可快速实现安全的数据加解密、签名验证等操作。
项目地址 GitHub:https://github.com/forgoer/openssl
go get -u github.com/forgoer/openssl
forgoer/openssl
支持 AES (128/192/256位)、DES、3DES,并提供 ECB/CBC 两种模式。它是一个工具集,是对称
和非对称
加解密的函数包装。
示例:AES-ECB加密解密
import "github.com/forgoer/openssl"
// 加密(自动填充PKCS#7)
src := []byte("HelloWorld")
key := []byte("1234567890123456") // 16字节密钥
dst, _ := openssl.AesECBEncrypt(src, key, openssl.PKCS7_PADDING)
// 解密
src, _ := openssl.AesECBDecrypt(dst, key, openssl.PKCS7_PADDING)
fmt.Println(string(src)) // 输出: HelloWorld
// 生成RSA密钥对(2048位)
openssl.RSAGenerateKey(2048, privateKeyWriter)
openssl.RSAGeneratePublicKey(privateKey, publicKeyWriter)
// 加密/解密
cipherText, _ := openssl.RSAEncrypt(plainText, publicKey)
plainText, _ := openssl.RSADecrypt(cipherText, privateKey)
// 签名/验签
sign, _ := openssl.RSASign(data, privateKey, crypto.SHA256)
err := openssl.RSAVerify(data, sign, publicKey, crypto.SHA256)
// SHA256哈希
hash := openssl.Sha256("data")
// HMAC-SHA256签名(带密钥)
mac := openssl.HmacSha256ToString("secret_key", "data")
forgoer/openssl
不是 “重复造轮子”,它让复杂的 OpenSSL 操作变得像写 “Hello World” 一样简单,同时兼顾性能和兼容性。
forgoer/openssl 是Go开发者处理加密任务的“瑞士军刀”。它用极简的接口隐藏了OpenSSL的复杂度,让安全开发不再成为业务落地的绊脚石。
如果你正在寻找一个轻量、可靠且符合工业标准的加密库,不妨给它一个Star吧!
立即体验
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。