Golang加解密库 Go-dongle 发布0.2.1版本,增强编解码与加密功能
Golang加解密库 Go-dongle 发布0.2.1版本,增强编解码与加密功能 Dongle 是一个简单、语义化且对开发者友好的 Go 语言包,用于编码解码和加密解密。
Dongle 已被 awesome-go 收录,如果您觉得它有帮助,请给我一个星标。
github.com/golang-module/dongle
更新日志
- 新增对
md2哈希算法的支持 - 新增对
hmac-md2摘要算法的支持 - 新增对
ed25519签名和验证的支持 #9 - 优化了解密时密文长度错误的处理 #10
- 优化了
verify.go中ToBool()方法的判断 - 将 newEncoder() 重命名为 NewEncoder(),newDecoder() 重命名为 NewDecoder(),newEncrypter() 重命名为 NewEncrypter(),newDecrypter() 重命名为 NewDecrypter()
功能列表
- [ √ ] 通过 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.1版本,增强编解码与加密功能的实战教程也可以访问 https://www.itying.com/category-94-b0.html
1 回复
更多关于Golang加解密库 Go-dongle 发布0.2.1版本,增强编解码与加密功能的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Go-dongle 0.2.1版本的更新确实增强了其作为Go语言加解密库的实用性。新增的md2哈希算法和hmac-md2摘要算法支持,以及ed25519签名验证功能,扩展了库的应用场景。以下是一些具体的使用示例:
1. 使用md2进行哈希加密:
package main
import (
"fmt"
"github.com/golang-module/dongle"
)
func main() {
// 对字符串进行md2加密
hash := dongle.Encrypt.FromString("hello world").ByMd2()
fmt.Println(hash.ToHexString()) // 输出md2哈希值的十六进制表示
}
2. 使用hmac-md2进行消息认证码计算:
func main() {
// 使用密钥计算hmac-md2
mac := dongle.Encrypt.FromString("hello world").ByHmacMd2("secret_key")
fmt.Println(mac.ToHexString())
}
3. 使用ed25519进行签名和验证:
func main() {
// 生成ed25519密钥对
publicKey, privateKey := dongle.GenerateKeyPair(dongle.Ed25519)
// 使用私钥签名
signature := dongle.Sign.FromString("data to sign").ByEd25519(privateKey)
// 使用公钥验证签名
isValid := dongle.Verify.FromString("data to sign").ByEd25519(publicKey, signature)
fmt.Println(isValid.ToBool()) // 输出true或false
}
4. 优化后的解密长度错误处理:
func main() {
// 尝试解密长度错误的密文
ciphertext := dongle.Decode.FromHexString("123456") // 无效的密文长度
decrypted := ciphertext.ByAes([]byte("0123456789abcdef"), []byte("0123456789abcdef"))
if decrypted.Error != nil {
fmt.Println("解密失败:", decrypted.Error) // 会明确提示密文长度错误
}
}
5. 使用新的公开构造函数:
func main() {
// 使用NewEncoder进行base64编码
encoder := dongle.NewEncoder()
encoded := encoder.FromString("hello").ByBase64()
fmt.Println(encoded.ToString())
// 使用NewDecrypter进行AES解密
decrypter := dongle.NewDecrypter()
decrypted := decrypter.FromHexString("encrypted_hex").ByAes(key, iv)
fmt.Println(decrypted.ToString())
}
这些更新使得Go-dongle在处理各种编码解码和加密解密任务时更加可靠和易用。特别是ed25519的加入为需要高性能数字签名的应用提供了更好的选择,而错误处理的优化则提升了库的健壮性。

