Golang加密库Go-dongle发布0.1.4版本:增强编解码与加解密功能
Golang加密库Go-dongle发布0.1.4版本:增强编解码与加解密功能 Dongle 是一个简单、语义化且对开发者友好的 Go 语言包,用于编码解码和加密解密。
Dongle 已被 awesome-go 收录,如果您觉得它有帮助,请给我一个星标。
github.com/golang-module/dongle
更新日志
- 新增对 tea 加密和解密的支持
- 新增对 bcrypt 签名和验证的支持
- 新增 cipherMode、cipherPadding 和 pkcsVersion 类型别名
- 修复已知错误
- 将单元测试覆盖率提升至 100%
功能列表
- [x] 通过 Hex 进行编码和解码
- [x] 通过 Base16 进行编码和解码
- [x] 通过 Base32 进行编码和解码
- [x] 通过 Base58 进行编码和解码
- [x] 通过 Base62 进行编码和解码
- [x] 通过 Base64 进行编码和解码
- [x] 通过 Base64URL 进行编码和解码
- [x] 通过 SafeURL 进行编码和解码
- [x] 通过 Base85 进行编码和解码
- [x] 通过 Base91 进行编码和解码
- [x] 通过 Base100 进行编码和解码
- [x] 通过 Md4 进行加密
- [x] 通过 Hmac-md4 进行加密
- [x] 通过 Md5 进行加密
- [x] 通过 Hmac-md5 进行加密
- [x] 通过 Sha1 进行加密
- [x] 通过 Hmac-sha1 进行加密
- [x] 通过 Sha224 进行加密
- [x] 通过 Hmac-sha224 进行加密
- [x] 通过 Sha256 进行加密
- [x] 通过 Hmac-sha256 进行加密
- [x] 通过 Sha384 进行加密
- [x] 通过 Hmac-sha384 进行加密
- [x] 通过 Sha512 进行加密
- [x] 通过 Hmac-sha512 进行加密
- [ ] 通过 Rc2 进行加密
- [x] 通过 Rc4 进行加密
- [ ] 通过 Rc5 进行加密
- [ ] 通过 Rc6 进行加密
- [x] 通过 Tea 进行加密和解密
- [ ] 通过 Xtea 进行加密和解密
- [x] 通过 Aes 进行加密和解密,支持 ECB/CBC/CTR/CFB/OFB 模式和 No/Zero/PKCS5/PKCS7 填充
- [x] 通过 Des 进行加密和解密,支持 ECB/CBC/CTR/CFB/OFB 模式和 No/Zero/PKCS5/PKCS7 填充
- [x] 通过 3des 进行加密和解密,支持 ECB/CBC/CTR/CFB/OFB 模式和 No/Zero/PKCS5/PKCS7 填充
- [x] 通过 Rsa 进行加密和解密,支持 PKCS1/PKCS8 版本
- [ ] 通过 Ecc 进行加密和解密
- [ ] 通过 Sm2 进行加密和解密
- [x] 通过 Sm3 进行加密
- [ ] 通过 Sm4 进行加密和解密
- [ ] 通过 Sm7 进行加密和解密
- [ ] 通过 Sm9 进行加密和解密
- [x] 通过 Bcrypt 进行签名和验证
- [ ] 通过 Rsa 进行签名和验证
- [ ] 通过 Dsa 进行签名和验证
更多关于Golang加密库Go-dongle发布0.1.4版本:增强编解码与加解密功能的实战教程也可以访问 https://www.itying.com/category-94-b0.html
2 回复
很好!谢谢。
更多关于Golang加密库Go-dongle发布0.1.4版本:增强编解码与加解密功能的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Go-dongle 0.1.4版本的发布确实带来了几个实用的新功能。新增的TEA加密支持可以这样使用:
package main
import (
"fmt"
"github.com/golang-module/dongle"
)
func main() {
// TEA加密示例
plaintext := "hello world"
key := "1234567890123456"
// 加密
encrypted := dongle.Encrypt.FromString(plaintext).ByTea(dongle.TeaCfg{
Key: key,
}).ToHexString()
fmt.Printf("加密结果: %s\n", encrypted)
// 解密
decrypted := dongle.Decrypt.FromHexString(encrypted).ByTea(dongle.TeaCfg{
Key: key,
}).ToString()
fmt.Printf("解密结果: %s\n", decrypted)
}
BCrypt签名验证功能也很实用:
package main
import (
"fmt"
"github.com/golang-module/dongle"
)
func main() {
// BCrypt示例
password := "mysecretpassword"
// 生成hash
hashed := dongle.Bcrypt.MustEncrypt(password)
fmt.Printf("生成的hash: %s\n", hashed)
// 验证密码
isValid := dongle.Bcrypt.MustVerify(password, hashed)
fmt.Printf("密码验证结果: %v\n", isValid)
}
新增的类型别名让代码更清晰:
package main
import (
"fmt"
"github.com/golang-module/dongle"
)
func main() {
// 使用新的类型别名
cfg := dongle.AesCfg{
Mode: dongle.CBC, // cipherMode类型别名
Padding: dongle.PKCS7, // cipherPadding类型别名
Key: "1234567890123456",
IV: "1234567890123456",
}
data := "sensitive data"
encrypted := dongle.Encrypt.FromString(data).ByAes(cfg).ToBase64String()
fmt.Printf("AES加密结果: %s\n", encrypted)
}
单元测试覆盖率100%说明这个库的质量控制做得很好。TEA算法虽然相对简单,但在某些轻量级加密场景下还是有用的。BCrypt的加入让密码存储更加安全。

