go-cryptobin 常用加密解密库 v1.0.2002 发布了
go 常用加密解密库(Rsa/SM2/Aes/Des/TripleDes/SM4/Tea/Twofish)
项目介绍
- go-cryptobin 包括常用的对称加密和非对称加密及签名验证
- 对称加密解密(Aes/Des/TripleDes/SM4/Tea/Twofish/Xts)
- 对称加密解密模式(ECB/CBC/CFB/OFB/CTR/GCM/CCM)
- 对称加密解密补码(NoPadding/ZeroPadding/PKCS5Padding/PKCS7Padding/X923Padding/ISO10126Padding/ISO97971Padding/ISO7816_4Padding/TBCPadding/PKCS1Padding)
- 非对称加密解密(RSA/SM2)
- 非对称签名验证(RSA/PSS/DSA/Ecdsa/EdDSA/SM2)
- 默认
Aes,ECB,NoPadding - 如果对你有帮助或者喜欢可以点个星星支持下
- 项目地址: github.com/deatil/go-cryptobin
更新功能
- v1.0.2002 重构了对称加密逻辑
- 添加了 openssh 公钥生成
- 使用文档 github.com/deatil/go-cryptobin/blo...
下载安装
go get -u github.com/deatil/go-cryptobin
开始使用
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// 加密数据 cypt := crypto. FromString("useData"). SetKey("dfertf12dfertf12"). Encrypt(). ToBase64String() // 解密数据 cyptde := crypto. FromBase64String("i3FhtTp5v6aPJx0wTbarwg=="). SetKey("dfertf12dfertf12"). Decrypt(). ToString()结构说明
// 使用代码 // 注意: 数据来源,设置密码,加密类型,加密模式,补码方式 在 操作类型 之前, 可以调换顺序 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(),SM4(),Chacha20(nonce string, counter ...uint32),Chacha20poly1305(nonce string, additional string),RC4(),Xts(cipher string, sectorNum uint64) - 加密模式:
ECB(),CBC(),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()
关于 LearnKu
推荐文章: