Golang加密库Go-dongle发布0.2.2版本:增强编解码与加解密功能

Golang加密库Go-dongle发布0.2.2版本:增强编解码与加解密功能 Dongle 是一个简单、语义化且对开发者友好的 Go 语言包,用于编码解码和加密解密。

Dongle 已被 awesome-go 收录,如果您觉得它有帮助,请给我一个星标。

github.com/golang-module/dongle

更新日志

  • 新增对 blowfish 加密和解密的支持
  • 新增对 AnsiX923ISO97971 填充模式的支持
  • encode.go 重命名为 encoder.godecode.go 重命名为 decoder.goencrypt.go 重命名为 encrypter.gosign.go 重命名为 signer.goverify.go 重命名为 verifier.go
  • rsa.go 中将 isSupportedHash() 重命名为 (receiver).isRsaSupported()
  • carbon.RAW 重命名为 carbon.Rawcarbon.HEX 重命名为 carbon.Hexcarbon.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

1 回复

更多关于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.goencoder.go)虽然不影响公开API,但确实让代码结构更清晰。

回到顶部