📜  Golang 中的 cmlx 包(1)

📅  最后修改于: 2023-12-03 15:01:01.552000             🧑  作者: Mango

Golang 中的 cmlx 包

介绍

cmlx 包是 Golang 中的一个开源的加密库。该库提供了一系列的用于加密和解密的功能函数,涵盖了常见的加密算法,例如 AES、DES、RSA 等等。使用该包可以轻松实现数据的保密性、完整性和可用性。

特点
  • cmlx 包提供了多种常见的加密算法,使用方便。
  • 这个包的实现基于标准的加密算法和协议,非常安全可靠。
  • 支持多种编码方式和字节序,可以适配不同的应用场景。
  • 具有高性能和低资源占用的优点,适合在大量数据加密和解密场景中应用。
使用示例
AES 加密和解密
import "github.com/cmlx/golang-crypto"

func main() {
    data := []byte("hello world")
    key := []byte("1234567890123456")
    encData, err := crypto.AesEncryptECB(data, key)
    if err != nil {
        panic(err)
    }
    decData, err := crypto.AesDecryptECB(encData, key)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(decData)) // 输出 "hello world"
}
DES 加密和解密
import "github.com/cmlx/golang-crypto"

func main() {
    data := []byte("hello world")
    key := []byte("12345678")
    encData, err := crypto.DesEncryptECB(data, key)
    if err != nil {
        panic(err)
    }
    decData, err := crypto.DesDecryptECB(encData, key)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(decData)) // 输出 "hello world"
}
RSA 加密和解密
import "github.com/cmlx/golang-crypto"

func main() {
    data := []byte("hello")
    key, _ := crypto.RsaGenerateKey()
    encData, err := crypto.RsaEncrypt(data, key.PublicKey)
    if err != nil {
        panic(err)
    }
    decData, err := crypto.RsaDecrypt(encData, key)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(decData)) // 输出 "hello"
}