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.goToBool() 方法的判断
  • 将 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的加入为需要高性能数字签名的应用提供了更好的选择,而错误处理的优化则提升了库的健壮性。

回到顶部