# Cryptor

cryptor 加密包支持数据加密和解密,获取 md5,hash 值。支持 base64, md5, hmac, aes, des, rsa。

# 源码:

# 用法:

import (
    "github.com/duke-git/lancet/v2/cryptor"
)

# 文档

# AesEcbEncrypt

使用AES ECB算法模式加密数据. 参数`key`的长度是16, 24 or 32。

函数签名:

func AesEcbEncrypt(data, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefghijklmnop"
    encrypted := cryptor.AesEcbEncrypt([]byte(data), []byte(key))

    fmt.Println(string(encrypted))
}

# AesEcbDecrypt

使用AES ECB算法模式解密数据. 参数`key`的长度是16, 24 or 32。

函数签名:

func AesEcbDecrypt(encrypted, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefghijklmnop"
    encrypted := cryptor.AesEcbEncrypt([]byte(data), []byte(key))
    decrypted := cryptor.AesEcbDecrypt(encrypted, []byte(key))
    fmt.Println(string(decrypted)) //hello world
}

# AesCbcEncrypt

使用AES CBC算法模式加密数据. 参数`key`的长度是16, 24 or 32。

函数签名:

func AesCbcEncrypt(data, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefghijklmnop"
    encrypted := cryptor.AesCbcEncrypt([]byte(data), []byte(key))

    fmt.Println(string(encrypted))
}

# AesCbcDecrypt

使用AES CBC算法模式解密数据. 参数`key`的长度是16, 24 or 32。

函数签名:

func AesCbcDecrypt(encrypted, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefghijklmnop"
    encrypted := cryptor.AesCbcEncrypt([]byte(data), []byte(key))
    decrypted := cryptor.AesCbcDecrypt(encrypted, []byte(key))

    fmt.Println(string(decrypted)) //hello world
}

# AesCtrCrypt

使用AES CTR算法模式加密/解密数据. 参数`key`的长度是16, 24 or 32。

函数签名:

func AesCtrCrypt(data, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefghijklmnop"
    encrypted := cryptor.AesCtrCrypt([]byte(data), []byte(key))
    decrypted := cryptor.AesCtrCrypt(encrypted, []byte(key))

    fmt.Println(string(decrypted)) //hello world
}

# AesCfbEncrypt

使用AES CFB算法模式加密数据. 参数`key`的长度是16, 24 or 32。

函数签名:

func AesCfbEncrypt(data, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefghijklmnop"
    encrypted := cryptor.AesCfbEncrypt([]byte(data), []byte(key))
    fmt.Println(string(encrypted))
}

# AesCfbDecrypt

使用AES CFB算法模式解密数据. 参数`key`的长度是16, 24 or 32。

函数签名:

func AesCfbDecrypt(encrypted, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefghijklmnop"
    encrypted := cryptor.AesCfbEncrypt([]byte(data), []byte(key))
    decrypted := cryptor.AesCfbDecrypt(encrypted, []byte(key))
    fmt.Println(string(decrypted)) //hello world
}

# AesOfbEncrypt

使用AES OFB算法模式加密数据. 参数`key`的长度是16, 24 or 32

函数签名:

func AesOfbEncrypt(data, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefghijklmnop"
    encrypted := cryptor.AesOfbEncrypt([]byte(data), []byte(key))
    fmt.Println(string(encrypted))
}

# AesOfbDecrypt

使用AES OFB算法模式解密数据. 参数`key`的长度是16, 24 or 32

函数签名:

func AesOfbDecrypt(encrypted, key []byte) []byte

Example:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefghijklmnop"
    encrypted := cryptor.AesOfbEncrypt([]byte(data), []byte(key))
    decrypted := cryptor.AesOfbDecrypt(encrypted, []byte(key))
    fmt.Println(string(decrypted)) //hello world
}

# Base64StdEncode

将字符串base64编码

函数签名:

func Base64StdEncode(s string) string

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    base64Str := cryptor.Base64StdEncode("hello world")
    fmt.Println(base64Str) //aGVsbG8gd29ybGQ=
}

# Base64StdDecode

解码base64字符串

函数签名:

func Base64StdDecode(s string) string

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    str := cryptor.Base64StdDecode("aGVsbG8gd29ybGQ=")
    fmt.Println(str) //hello world
}

# DesEcbEncrypt

使用DES ECB算法模式加密数据. 参数`key`的长度是8

函数签名:

func DesEcbEncrypt(data, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefgh"
    encrypted := cryptor.DesEcbEncrypt([]byte(data), []byte(key))

    fmt.Println(string(encrypted))
}

# DesEcbDecrypt

使用DES ECB算法模式解密数据. 参数`key`的长度是8

函数签名:

func DesEcbDecrypt(encrypted, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefgh"
    encrypted := cryptor.DesEcbEncrypt([]byte(data), []byte(key))
    decrypted := cryptor.DesEcbDecrypt(encrypted, []byte(key))

    fmt.Println(string(decrypted)) //hello world
}

# DesCbcEncrypt

使用DES CBC算法模式加密数据. 参数`key`的长度是8

函数签名:

func DesCbcEncrypt(data, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefgh"
    encrypted := cryptor.DesCbcEncrypt([]byte(data), []byte(key))

    fmt.Println(string(encrypted))
}

# DesCbcDecrypt

使用DES CBC算法模式解密数据. 参数`key`的长度是8

函数签名:

func DesCbcDecrypt(encrypted, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefgh"
    encrypted := cryptor.DesCbcEncrypt([]byte(data), []byte(key))
    decrypted := cryptor.DesCbcDecrypt(encrypted, []byte(key))

    fmt.Println(string(decrypted)) //hello world
}

# DesCtrCrypt

使用DES CTR算法模式加密/解密数据. 参数`key`的长度是8

函数签名:

func DesCtrCrypt(data, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefgh"
    encrypted := cryptor.DesCtrCrypt([]byte(data), []byte(key))
    decrypted := cryptor.DesCtrCrypt(encrypted, []byte(key))

    fmt.Println(string(decrypted)) //hello world
}

# DesCfbEncrypt

使用DES CFB算法模式加密数据. 参数`key`的长度是8

函数签名:

func DesCfbEncrypt(data, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefgh"
    encrypted := cryptor.DesCfbEncrypt([]byte(data), []byte(key))
    fmt.Println(string(encrypted))
}

# DesCfbDecrypt

使用DES CFB算法模式解密数据. 参数`key`的长度是8

函数签名:

func DesCfbDecrypt(encrypted, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefgh"
    encrypted := cryptor.DesCfbEncrypt([]byte(data), []byte(key))
    decrypted := cryptor.DesCfbDecrypt(encrypted, []byte(key))
    fmt.Println(string(decrypted)) //hello world
}

# DesOfbEncrypt

使用DES OFB算法模式加密数据. 参数`key`的长度是8

函数签名:

func DesOfbEncrypt(data, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefgh"
    encrypted := cryptor.DesOfbEncrypt([]byte(data), []byte(key))
    fmt.Println(string(encrypted))
}

# DesOfbDecrypt

使用DES OFB算法模式解密数据. 参数`key`的长度是8

函数签名:

func DesOfbDecrypt(encrypted, key []byte) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    data := "hello world"
    key := "abcdefgh"
    encrypted := cryptor.DesOfbEncrypt([]byte(data), []byte(key))
    decrypted := cryptor.DesOfbDecrypt(encrypted, []byte(key))
    fmt.Println(string(decrypted)) //hello world
}

# HmacMd5

获取字符串md5 hmac值

函数签名:

func HmacMd5(data, key string) string

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    s := cryptor.HmacMd5("hello world", "12345"))
    fmt.Println(s) //5f4c9faaff0a1ad3007d9ddc06abe36d
}

# HmacSha1

获取字符串sha1 hmac值

函数签名:

func HmacSha1(data, key string) string

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    s := cryptor.HmacSha1("hello world", "12345"))
    fmt.Println(s) //3826f812255d8683f051ee97346d1359234d5dbd
}

# HmacSha256

获取字符串sha256 hmac值

函数签名:

func HmacSha256(data, key string) string

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    s := cryptor.HmacSha256("hello world", "12345"))
    fmt.Println(s) //9dce2609f2d67d41f74c7f9efc8ccd44370d41ad2de52982627588dfe7289ab8
}

# HmacSha512

获取字符串sha512 hmac值

函数签名:

func HmacSha512(data, key string) string

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    s := cryptor.HmacSha512("hello world", "12345"))
    fmt.Println(s)
 //5b1563ac4e9b49c9ada8ccb232588fc4f0c30fd12f756b3a0b95af4985c236ca60925253bae10ce2c6bf9af1c1679b51e5395ff3d2826c0a2c7c0d72225d4175
}

# Md5String

获取字符串md5值

函数签名:

func Md5String(s string) string

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    s := cryptor.Md5String("hello"))
    fmt.Println(s) //5d41402abc4b2a76b9719d911017c592
}

# Md5File

获取文件md5值.

函数签名:

func Md5File(filepath string) (string, error)

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    s := cryptor.Md5File("./main.go"))
    fmt.Println(s)
}

# Sha1

获取字符串sha1值

函数签名:

func Sha1(data string) string

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    s := cryptor.Sha1("hello world"))
    fmt.Println(s) //2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
}

# Sha256

获取字符串sha256值

函数签名:

func Sha256(data string) string

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    s := cryptor.Sha256("hello world"))
    fmt.Println(s) //b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
}

# Sha512

获取字符串sha512值

函数签名:

func Sha512(data string) string

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    s := cryptor.Sha512("hello world"))
    fmt.Println(s) //309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
}

# GenerateRsaKey

在当前目录下创建rsa私钥文件和公钥文件

函数签名:

func GenerateRsaKey(keySize int, priKeyFile, pubKeyFile string) error

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    err := cryptor.GenerateRsaKey(4096, "rsa_private.pem", "rsa_public.pem")
    if err != nil {
        fmt.Println(err)
    }
}

# RsaEncrypt

用公钥文件ras加密数据

函数签名:

func RsaEncrypt(data []byte, pubKeyFileName string) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    err := cryptor.GenerateRsaKey(4096, "rsa_private.pem", "rsa_public.pem")
    if err != nil {
        fmt.Println(err)
    }
    data := []byte("hello world")
    encrypted := cryptor.RsaEncrypt(data, "rsa_public.pem")
    decrypted := cryptor.RsaDecrypt(encrypted, "rsa_private.pem")
  	fmt.Println(string(decrypted)) //hello world
}

# RsaDecrypt

用私钥文件rsa解密数据

函数签名:

func RsaDecrypt(data []byte, privateKeyFileName string) []byte

列子:

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/cryptor"
)

func main() {
    err := cryptor.GenerateRsaKey(4096, "rsa_private.pem", "rsa_public.pem")
    if err != nil {
        fmt.Println(err)
    }
    data := []byte("hello world")
    encrypted := cryptor.RsaEncrypt(data, "rsa_public.pem")
    decrypted := cryptor.RsaDecrypt(encrypted, "rsa_private.pem")
  	fmt.Println(string(decrypted)) //hello world
}
最后更新时间: 2022/9/29 下午1:53:14