go-cryptobin 常用加密解密库新版本发布了

tuzhiya · · 761 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

### v1.0.2026 更新内容 * 非对称证书添加自定义种子生成秘钥对 * RSA 方法更新 PriKeyEncrypt 为 PrivateKeyEncrypt,更新 PubKeyDecrypt 为 PublicKeyDecrypt,更新 PSSSign 为 SignPSS,更新 PSSVerify 为 VerifyPSS * 常规优化更新 ### 项目介绍 * go-cryptobin 包括常用的对称加密和非对称加密及签名验证 * 项目地址 https://github.com/deatil/go-cryptobin * 文档地址 https://github.com/deatil/go-cryptobin/blob/main/docs/README.md * 对称加密解密(Aes/Des/TripleDes/SM4/Tea/Twofish/Xts) * 对称加密解密模式(ECB/CBC/PCBC/CFB/OFB/CTR/GCM/CCM) * 对称加密解密补码(NoPadding/ZeroPadding/PKCS5Padding/PKCS7Padding/X923Padding/ISO10126Padding/ISO97971Padding/ISO7816_4Padding/TBCPadding/PKCS1Padding) * 非对称加密解密(RSA/SM2/EIGamal) * 非对称签名验证(RSA/PSS/DSA/ECDSA/EdDSA/SM2/EIGamal) * 默认 `Aes`, `ECB`, `NoPadding` * 如果对你有帮助或者喜欢的话可以点个小星星支持下我们喔 ### 下载安装 ~~~go go get -u github.com/deatil/go-cryptobin ~~~ ### 开始使用 ~~~go package main import ( "fmt" "github.com/deatil/go-cryptobin/cryptobin/crypto" ) func main() { // 加密 cypt := crypto. FromString("useData"). SetKey("dfertf12dfertf12"). Aes(). ECB(). PKCS7Padding(). Encrypt(). ToBase64String() // 解密 cyptde := crypto. FromBase64String("i3FhtTp5v6aPJx0wTbarwg=="). SetKey("dfertf12dfertf12"). Aes(). ECB(). PKCS7Padding(). Decrypt(). ToString() // i3FhtTp5v6aPJx0wTbarwg== fmt.Println("加密结果:", cypt) fmt.Println("解密结果:", cyptde) } ~~~ ### 结构说明 * 默认方式 `Aes`, `ECB`, `NoPadding` ~~~go // 加密数据 cypt := crypto. FromString("useData"). SetKey("dfertf12dfertf12"). Encrypt(). ToBase64String() // 解密数据 cyptde := crypto. FromBase64String("i3FhtTp5v6aPJx0wTbarwg=="). SetKey("dfertf12dfertf12"). Decrypt(). ToString() ~~~ * 结构说明 ~~~go // 使用代码 // 注意: 设置密码,加密类型,加密模式,补码方式 在 操作类型 之前, 可以调换顺序 ret := crypto. FromString("string"). // 数据来源, 待加密数据/待解密数据 SetKey("key"). // 设置密码 SetIv("iv_string"). // 设置向量 Aes(). // 加密类型 CBC(). // 加密模式 PKCS7Padding(). // 补码方式 Encrypt(). // 操作类型, 加密或者解密 ToBase64String() // 返回结果数据类型 ~~~ ### 可用方法 * 数据来源: `FromBytes(data []byte)`, `FromString(data string)`, `FromBase64String(data string)`, `FromHexString(data string)` * 设置密码: `SetKey(data string)`, `WithKey(key []byte)` * 设置向量: `SetIv(data string)`, `WithIv(iv []byte)` * 加密类型: `Aes()`, `Des()`, `TripleDes()`, `Twofish()`, `Blowfish()`, `Tea(rounds ...int)`, `Xtea()`, `Cast5()`, `RC4()`, `Idea()`, `SM4()`, `Chacha20(nonce string, counter ...uint32)`, `Chacha20poly1305(nonce string, additional string)`, `Xts(cipher string, sectorNum uint64)` * 加密模式: `ECB()`, `CBC()`, `PCBC()`, `CFB()`, `OFB()`, `CTR()`, `GCM(nonce string, additional ...string)`, `CCM(nonce string, additional ...string)` * 补码方式: `NoPadding()`, `ZeroPadding()`, `PKCS5Padding()`, `PKCS7Padding()`, `X923Padding()`, `ISO10126Padding()`, `ISO7816_4Padding()`, `TBCPadding()`, `PKCS1Padding(bt ...string)` * 操作类型: `Encrypt()`, `Decrypt()`, `FuncEncrypt(f func(Cryptobin) Cryptobin)`, `FuncDecrypt(f func(Cryptobin) Cryptobin)` * 返回数据类型: `ToBytes()`, `ToString()`, `ToBase64String()`, `ToHexString()`

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

761 次点击  
加入收藏 微博
4 回复  |  直到 2023-10-18 11:23:48
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传