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

Golang加解密库Go-dongle发布0.1.0版本,增强编解码与加密解密功能 Carbon 是一个简单、语义化且对开发者友好的 Golang 日期时间包。

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

github.com/golang-module/dongle

安装

go get -u github.com/golang-module/dongle

import (
    "github.com/golang-module/dongle"
)
更新日志

功能列表

  • Hex 编码和解码
  • Base32 编码和解码
  • Base64 编码和解码
  • Base64URL 编码和解码
  • SafeURL 编码和解码
  • Md4 加密
  • Hmac-md4 加密
  • Md5 加密
  • Hmac-md5 加密
  • ShaXXX 加密
  • Hmac-shaXXX 加密
  • Rc4 加密
  • AES-CBC-NoPadding 加密和解密
  • AES-CBC-ZeroPadding 加密和解密
  • AES-CBC-PKCS5Padding 加密和解密
  • AES-CBC-PKCS7Padding 加密和解密
  • AES-CTR-NoPadding 加密和解密
  • AES-CTR-ZeroPadding 加密和解密
  • AES-CTR-PKCS5Padding 加密和解密
  • AES-CTR-PKCS7Padding 加密和解密
  • AES-CFB-NoPadding 加密和解密
  • AES-CFB-ZeroPadding 加密和解密
  • AES-CFB-PKCS5Padding 加密和解密
  • AES-CFB-PKCS7Padding 加密和解密
  • AES-OFB-NoPadding 加密和解密
  • AES-OFB-ZeroPadding 加密和解密
  • AES-OFB-PKCS5Padding 加密和解密
  • AES-OFB-PKCS7Padding 加密和解密

更多关于Golang加解密库Go-dongle发布0.1.0版本,增强编解码与加密解密功能的实战教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于Golang加解密库Go-dongle发布0.1.0版本,增强编解码与加密解密功能的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


Go-dongle 0.1.0 版本在编解码和加密解密功能上的增强确实为Golang开发者提供了更便捷的解决方案。以下是一些具体的使用示例:

1. Base64 编码与解码

package main

import (
    "fmt"
    "github.com/golang-module/dongle"
)

func main() {
    // 编码
    encoded := dongle.Encode.FromString("hello world").ByBase64()
    fmt.Println(encoded.ToString()) // aGVsbG8gd29ybGQ=
    
    // 解码
    decoded := dongle.Decode.FromString("aGVsbG8gd29ybGQ=").ByBase64()
    fmt.Println(decoded.ToString()) // hello world
}

2. AES-CBC-PKCS7Padding 加密解密

package main

import (
    "fmt"
    "github.com/golang-module/dongle"
)

func main() {
    key := "1234567890123456"
    iv := "1234567890123456"
    
    // 加密
    encrypted := dongle.Encrypt.FromString("hello world").
        ByAes(dongle.CBC, dongle.PKCS7, []byte(key), []byte(iv))
    fmt.Println(encrypted.ToHexString()) // 加密后的十六进制字符串
    
    // 解密
    decrypted := dongle.Decrypt.FromHexString(encrypted.ToHexString()).
        ByAes(dongle.CBC, dongle.PKCS7, []byte(key), []byte(iv))
    fmt.Println(decrypted.ToString()) // hello world
}

3. SHA256 哈希计算

package main

import (
    "fmt"
    "github.com/golang-module/dongle"
)

func main() {
    // SHA256 哈希
    hash := dongle.Encrypt.FromString("hello world").BySha256()
    fmt.Println(hash.ToHexString()) // b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
}

4. HMAC-SHA256 消息认证码

package main

import (
    "fmt"
    "github.com/golang-module/dongle"
)

func main() {
    key := "secret"
    hmac := dongle.Encrypt.FromString("hello world").
        ByHmacSha256([]byte(key))
    fmt.Println(hmac.ToHexString()) // HMAC-SHA256 结果
}

5. Hex 编码解码

package main

import (
    "fmt"
    "github.com/golang-module/dongle"
)

func main() {
    // 编码
    encoded := dongle.Encode.FromString("hello").ByHex()
    fmt.Println(encoded.ToString()) // 68656c6c6f
    
    // 解码
    decoded := dongle.Decode.FromString("68656c6c6f").ByHex()
    fmt.Println(decoded.ToString()) // hello
}

6. RC4 加密解密

package main

import (
    "fmt"
    "github.com/golang-module/dongle"
)

func main() {
    key := "123456"
    
    // 加密
    encrypted := dongle.Encrypt.FromString("hello world").
        ByRc4([]byte(key))
    fmt.Println(encrypted.ToHexString())
    
    // 解密
    decrypted := dongle.Decrypt.FromHexString(encrypted.ToHexString()).
        ByRc4([]byte(key))
    fmt.Println(decrypted.ToString()) // hello world
}

这些示例展示了Go-dongle库在0.1.0版本中提供的核心功能。该库通过统一的API设计简化了加解密操作,支持多种编码格式和加密算法,特别是AES支持多种工作模式和填充方式,能够满足大多数开发场景的需求。

回到顶部