Golang加密库Go-dongle发布0.2.4版本,增强编解码与加解密功能
Golang加密库Go-dongle发布0.2.4版本,增强编解码与加解密功能 Dongle 是一个简单、语义化且对开发者友好的 Golang 包,用于编码解码和加密解密。
Dongle 已被 awesome-go 收录,如果您觉得它有帮助,请给我一个星标。
github.com/golang-module/dongle
更新日志
- 新增对
base45编码和解码的支持 - 新增对
blake2b-256、blake2b-384、blake2b-512哈希加密的支持 - 新增对
blake2s-256哈希加密的支持 - 新增通过
rsa对超过 117 字节的明文进行加密和解密的支持
功能列表
- [x] 通过 Hex 进行编码和解码
- [x] 通过 Base16 进行编码和解码
- [x] 通过 Base32 进行编码和解码
- [x] 通过 Base45 进行编码和解码
- [x] 通过 Base58 进行编码和解码
- [x] 通过 Base62 进行编码和解码
- [x] 通过 Base64 进行编码和解码
- [x] 通过 Base64URL 进行编码和解码
- [x] 通过 SafeURL 进行编码和解码
- [x] 通过 Base85 进行编码和解码
- [x] 通过 Base91 进行编码和解码
- [x] 通过 Base100 进行编码和解码
- [x] 通过 Morse 进行编码和解码
- [x] 通过 Md2 进行加密
- [x] 通过 Md4 进行加密
- [x] 通过 Md5 进行加密
- [x] 通过 Sha1 进行加密
- [x] 通过 Sha3-224 进行加密
- [x] 通过 Sha3-256 进行加密
- [x] 通过 Sha3-384 进行加密
- [x] 通过 Sha3-512 进行加密
- [x] 通过 Sha224 进行加密
- [x] 通过 Sha256 进行加密
- [x] 通过 Sha384 进行加密
- [x] 通过 Sha512 进行加密
- [x] 通过 Sha512-224 进行加密
- [x] 通过 Sha512-256 进行加密
- [x] 通过 Shake128 进行加密
- [x] 通过 Shake256 进行加密
- [x] 通过 Ripemd160 进行加密
- [x] 通过 Blake2b-256 进行加密
- [x] 通过 Blake2b-384 进行加密
- [x] 通过 Blake2b-512 进行加密
- [x] 通过 Blake2s-256 进行加密
- [x] 通过 Hmac-md2 进行加密
- [x] 通过 Hmac-md4 进行加密
- [x] 通过 Hmac-md5 进行加密
- [x] 通过 Hmac-sha1 进行加密
- [x] 通过 Hmac-sha3-224 进行加密
- [x] 通过 Hmac-sha3-256 进行加密
- [x] 通过 Hmac-sha3-384 进行加密
- [x] 通过 Hmac-sha3-512 进行加密
- [x] 通过 Hmac-sha224 进行加密
- [x] 通过 Hmac-sha256 进行加密
- [x] 通过 Hmac-sha384 进行加密
- [x] 通过 Hmac-sha512 进行加密
- [x] 通过 Hmac-sha512-224 进行加密
- [x] 通过 Hmac-sha512-256 进行加密
- [x] 通过 Hmac-ripemd160 进行加密
- [x] 通过 Hmac-sm3 进行加密
- [ ] 通过 Rc2 进行加密和解密
- [x] 通过 Rc4 进行加密和解密
- [ ] 通过 Rc5 进行加密和解密
- [ ] 通过 Rc6 进行加密和解密
- [x] 通过 Tea 进行加密和解密
- [ ] 通过 Xtea 进行加密和解密
- [x] 通过 Aes 进行加密和解密
- [x] 通过 Blowfish 进行加密和解密
- [x] 通过 Des 进行加密和解密
- [x] 通过 3Des 进行加密和解密
- [x] 通过 Rsa 进行加密和解密
- [ ] 通过 Ecc 进行加密和解密
- [ ] 通过 Sm2 进行加密和解密
- [x] 通过 Sm3 进行加密
- [ ] 通过 Sm4 进行加密和解密
- [ ] 通过 Sm7 进行加密和解密
- [ ] 通过 Sm9 进行加密和解密
- [x] 通过 Bcrypt 进行签名和验证
- [x] 通过 Ed25519 进行签名和验证
- [x] 通过 Rsa 进行签名和验证
- [ ] 通过 Dsa 进行签名和验证
更多关于Golang加密库Go-dongle发布0.2.4版本,增强编解码与加解密功能的实战教程也可以访问 https://www.itying.com/category-94-b0.html
1 回复
更多关于Golang加密库Go-dongle发布0.2.4版本,增强编解码与加解密功能的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Go-dongle 0.2.4 版本的更新确实增强了其编解码与加解密功能。新增的 base45 编码支持适用于健康码等场景,而 Blake2b 和 Blake2s 哈希算法提供了更高效的加密选项。RSA 对超过 117 字节明文的支持解决了之前的数据长度限制问题。
以下是使用示例:
package main
import (
"fmt"
"github.com/golang-module/dongle"
)
func main() {
// Base45 编码解码示例
encoded := dongle.Encode.FromString("hello world").ByBase45().ToString()
fmt.Println("Base45 encoded:", encoded)
decoded := dongle.Decode.FromString(encoded).ByBase45().ToString()
fmt.Println("Base45 decoded:", decoded)
// Blake2b-256 哈希示例
hash := dongle.Encrypt.FromString("hello world").ByBlake2b256().ToHexString()
fmt.Println("Blake2b-256 hash:", hash)
// RSA 加密长文本示例
publicKey := `-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0...`
privateKey := `-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwgg...`
longText := "This is a long text that exceeds 117 bytes for RSA encryption testing in Go-dongle 0.2.4 version."
encrypted := dongle.Encrypt.FromString(longText).ByRsa(dongle.RSA_PKCS1_PADDING, publicKey).ToBase64String()
fmt.Println("RSA encrypted:", encrypted)
decrypted := dongle.Decrypt.FromBase64String(encrypted).ByRsa(dongle.RSA_PKCS1_PADDING, privateKey).ToString()
fmt.Println("RSA decrypted:", decrypted)
}
该库的 API 设计保持了语义化特点,例如 dongle.Encrypt.FromString().ByBlake2b256().ToHexString() 这样的链式调用清晰表达了操作流程。新增功能进一步扩展了 Go-dongle 在安全数据处理方面的应用范围。

