Golang加密库Go-dongle发布0.2.2版本:增强编解码与加解密功能
Golang加密库Go-dongle发布0.2.2版本:增强编解码与加解密功能 Dongle 是一个简单、语义化且对开发者友好的 Go 语言包,用于编码解码和加密解密。
Dongle 已被 awesome-go 收录,如果您觉得它有帮助,请给我一个星标。
github.com/golang-module/dongle
更新日志
- 新增对
blowfish加密和解密的支持 - 新增对
AnsiX923和ISO97971填充模式的支持 - 将
encode.go重命名为encoder.go,decode.go重命名为decoder.go,encrypt.go重命名为encrypter.go,sign.go重命名为signer.go,verify.go重命名为verifier.go - 在
rsa.go中将isSupportedHash()重命名为(receiver).isRsaSupported() - 将
carbon.RAW重命名为carbon.Raw,carbon.HEX重命名为carbon.Hex,carbon.BASE64重命名为carbon.Base64
功能列表
- [ √ ] 通过 Hex 进行编码和解码
- [ √ ] 通过 Base16 进行编码和解码
- [ √ ] 通过 Base32 进行编码和解码
- [ √ ] 通过 Base58 进行编码和解码
- [ √ ] 通过 Base62 进行编码和解码
- [ √ ] 通过 Base64 进行编码和解码
- [ √ ] 通过 Base64URL 进行编码和解码
- [ √ ] 通过 SafeURL 进行编码和解码
- [ √ ] 通过 Base85 进行编码和解码
- [ √ ] 通过 Base91 进行编码和解码
- [ √ ] 通过 Base100 进行编码和解码
- [ √ ] 通过 Morse 进行编码和解码
- [ √ ] 通过 Md2 进行加密
- [ √ ] 通过 Md4 进行加密
- [ √ ] 通过 Md5 进行加密
- [ √ ] 通过 Sha1 进行加密
- [ √ ] 通过 Sha3-224 进行加密
- [ √ ] 通过 Sha3-256 进行加密
- [ √ ] 通过 Sha3-384 进行加密
- [ √ ] 通过 Sha3-512 进行加密
- [ √ ] 通过 Sha224 进行加密
- [ √ ] 通过 Sha256 进行加密
- [ √ ] 通过 Sha384 进行加密
- [ √ ] 通过 Sha512 进行加密
- [ √ ] 通过 Sha512-224 进行加密
- [ √ ] 通过 Sha512-256 进行加密
- [ √ ] 通过 Ripemd160 进行加密
- [ √ ] 通过 Hmac-md2 进行加密
- [ √ ] 通过 Hmac-md4 进行加密
- [ √ ] 通过 Hmac-md5 进行加密
- [ √ ] 通过 Hmac-sha1 进行加密
- [ √ ] 通过 Hmac-sha3-224 进行加密
- [ √ ] 通过 Hmac-sha3-256 进行加密
- [ √ ] 通过 Hmac-sha3-384 进行加密
- [ √ ] 通过 Hmac-sha3-512 进行加密
- [ √ ] 通过 Hmac-sha224 进行加密
- [ √ ] 通过 Hmac-sha256 进行加密
- [ √ ] 通过 Hmac-sha384 进行加密
- [ √ ] 通过 Hmac-sha512 进行加密
- [ √ ] 通过 Hmac-sha512-224 进行加密
- [ √ ] 通过 Hmac-sha512-256 进行加密
- [ √ ] 通过 Hmac-ripemd160 进行加密
- [ √ ] 通过 Hmac-sm3 进行加密
- [ ] 通过 Rc2 进行加密和解密
- [ √ ] 通过 Rc4 进行加密和解密
- [ ] 通过 Rc5 进行加密和解密
- [ ] 通过 Rc6 进行加密和解密
- [ √ ] 通过 Tea 进行加密和解密
- [ ] 通过 Xtea 进行加密和解密
- [ √ ] 通过 Aes 进行加密和解密
- [ √ ] 通过 Des 进行加密和解密
- [ √ ] 通过 3Des 进行加密和解密
- [ √ ] 通过 Rsa 进行加密和解密
- [ ] 通过 Ecc 进行加密和解密
- [ ] 通过 Sm2 进行加密和解密
- [ √ ] 通过 Sm3 进行加密
- [ ] 通过 Sm4 进行加密和解密
- [ ] 通过 Sm7 进行加密和解密
- [ ] 通过 Sm9 进行加密和解密
- [ √ ] 通过 Bcrypt 进行签名和验证
- [ √ ] 通过 Ed25519 进行签名和验证
- [ √ ] 通过 Rsa 进行签名和验证
- [ ] 通过 Dsa 进行签名和验证
更多关于Golang加密库Go-dongle发布0.2.2版本:增强编解码与加解密功能的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于Golang加密库Go-dongle发布0.2.2版本:增强编解码与加解密功能的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Go-dongle 0.2.2版本的更新确实增强了库的实用性和代码清晰度。新增的Blowfish加密支持和AnsiX923、ISO97971填充模式扩展了其加密能力,而文件重命名和函数重构则提升了代码的可读性和维护性。
以下是一些示例代码,展示新版本中部分功能的使用:
1. Blowfish加密解密示例:
package main
import (
"fmt"
"github.com/golang-module/dongle"
)
func main() {
// 加密
encrypted := dongle.Encrypt.FromString("hello world").ByBlowfish("12345678").ToBase64String()
fmt.Println("加密结果:", encrypted)
// 解密
decrypted := dongle.Decrypt.FromBase64String(encrypted).ByBlowfish("12345678").ToString()
fmt.Println("解密结果:", decrypted)
}
2. 使用AnsiX923填充模式的AES加密:
func main() {
key := "1234567890123456"
iv := "1234567890123456"
// 使用AnsiX923填充
cipher := dongle.NewCipher().
SetAlgorithm(dongle.AES).
SetMode(dongle.CBC).
SetPadding(dongle.AnsiX923).
SetKey(key).
SetIV(iv)
encrypted := cipher.Encrypt.FromString("hello world").ToBase64String()
fmt.Println("AES-CBC with AnsiX923:", encrypted)
decrypted := cipher.Decrypt.FromBase64String(encrypted).ToString()
fmt.Println("解密结果:", decrypted)
}
3. Base64编码解码示例(使用重命名后的API):
func main() {
// 编码
encoded := dongle.Encode.FromString("hello world").ByBase64().ToString()
fmt.Println("Base64编码:", encoded)
// 解码
decoded := dongle.Decode.FromString(encoded).ByBase64().ToString()
fmt.Println("Base64解码:", decoded)
}
4. RSA签名验证示例:
func main() {
privateKey := `-----BEGIN RSA PRIVATE KEY-----...`
publicKey := `-----BEGIN PUBLIC KEY-----...`
// 签名
signature := dongle.Sign.FromString("hello world").ByRsa(privateKey, dongle.SHA256).ToBase64String()
fmt.Println("RSA签名:", signature)
// 验证
verified := dongle.Verify.FromString("hello world").ByRsa(publicKey, signature, dongle.SHA256)
fmt.Println("验证结果:", verified)
}
这些示例展示了Go-dongle 0.2.2版本中新增和改进的功能。库的API设计保持了语义化特性,使得加密解密操作更加直观易用。文件重命名(如encode.go→encoder.go)虽然不影响公开API,但确实让代码结构更清晰。

