# Cryptor Package cryptor contains some functions for data encryption and decryption. Support base64, md5, hmac, aes, des, rsa.
## Source: - [https://github.com/duke-git/lancet/blob/main/cryptor/basic.go](https://github.com/duke-git/lancet/blob/main/cryptor/basic.go) - [https://github.com/duke-git/lancet/blob/main/cryptor/encrypt.go](https://github.com/duke-git/lancet/blob/main/cryptor/encrypt.go) ## Usage: ```go import ( "github.com/duke-git/lancet/v2/cryptor" ) ``` ## Index - [AesEcbEncrypt](#AesEcbEncrypt) - [AesEcbDecrypt](#AesEcbDecrypt) - [AesCbcEncrypt](#AesCbcEncrypt) - [AesCbcDecrypt](#AesCbcDecrypt) - [AesCtrCrypt](#AesCtrCrypt) - [AesCfbEncrypt](#AesCfbEncrypt) - [AesCfbDecrypt](#AesCfbDecrypt) - [AesOfbEncrypt](#AesOfbEncrypt) - [AesOfbDecrypt](#AesOfbDecrypt) - [Base64StdEncode](#Base64StdEncode) - [Base64StdDecode](#Base64StdDecode) - [DesEcbEncrypt](#DesEcbEncrypt) - [DesEcbDecrypt](#DesEcbDecrypt) - [DesCbcEncrypt](#DesCbcEncrypt) - [DesCbcDecrypt](#DesCbcDecrypt) - [DesCtrCrypt](#DesCtrCrypt) - [DesCfbEncrypt](#DesCfbEncrypt) - [DesCfbDecrypt](#DesCfbDecrypt) - [DesOfbEncrypt](#DesOfbEncrypt) - [DesOfbDecrypt](#DesOfbDecrypt) - [HmacMd5](#HmacMd5) - [HmacSha1](#HmacSha1) - [HmacSha256](#HmacSha256) - [HmacSha512](#HmacSha512) - [Md5String](#Md5String) - [Md5File](#Md5File) - [Sha1](#Sha1) - [Sha256](#Sha256) - [Sha512](#Sha512) - [GenerateRsaKey](#GenerateRsaKey) - [RsaEncrypt](#RsaEncrypt) - [RsaDecrypt](#RsaDecrypt) ## Documentation ### AesEcbEncryptEncrypt data with key use AES ECB algorithm. Length of `key` param should be 16, 24 or 32.
Signature: ```go func AesEcbEncrypt(data, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefghijklmnop" encrypted := cryptor.AesEcbEncrypt([]byte(data), []byte(key)) decrypted := cryptor.AesEcbDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### AesEcbDecryptDecrypt data with key use AES ECB algorithm. Length of `key` param should be 16, 24 or 32.
Signature: ```go func AesEcbDecrypt(encrypted, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefghijklmnop" encrypted := cryptor.AesEcbEncrypt([]byte(data), []byte(key)) decrypted := cryptor.AesEcbDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### AesCbcEncryptEncrypt data with key use AES CBC algorithm. Length of `key` param should be 16, 24 or 32.
Signature: ```go func AesCbcEncrypt(data, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefghijklmnop" encrypted := cryptor.AesCbcEncrypt([]byte(data), []byte(key)) decrypted := cryptor.AesCbcDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### AesCbcDecryptDecrypt data with key use AES CBC algorithm. Length of `key` param should be 16, 24 or 32.
Signature: ```go func AesCbcDecrypt(encrypted, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefghijklmnop" encrypted := cryptor.AesCbcEncrypt([]byte(data), []byte(key)) decrypted := cryptor.AesCbcDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### AesCtrCryptEncrypt or decrypt data with key use AES CTR algorithm. Length of `key` param should be 16, 24 or 32.
Signature: ```go func AesCtrCrypt(data, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefghijklmnop" encrypted := cryptor.AesCtrCrypt([]byte(data), []byte(key)) decrypted := cryptor.AesCtrCrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### AesCfbEncryptEncrypt data with key use AES CFB algorithm. Length of `key` param should be 16, 24 or 32.
Signature: ```go func AesCfbEncrypt(data, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefghijklmnop" encrypted := cryptor.AesCfbEncrypt([]byte(data), []byte(key)) decrypted := cryptor.AesCfbDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### AesCfbDecryptDecrypt data with key use AES CBC algorithm. Length of `key` param should be 16, 24 or 32.
Signature: ```go func AesCfbDecrypt(encrypted, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefghijklmnop" encrypted := cryptor.AesCfbEncrypt([]byte(data), []byte(key)) decrypted := cryptor.AesCfbDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### AesOfbEncryptEnecrypt data with key use AES OFB algorithm. Length of `key` param should be 16, 24 or 32.
Signature: ```go func AesOfbEncrypt(data, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefghijklmnop" encrypted := cryptor.AesOfbEncrypt([]byte(data), []byte(key)) decrypted := cryptor.AesCfbDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### AesOfbDecryptDecrypt data with key use AES OFB algorithm. Length of `key` param should be 16, 24 or 32.
Signature: ```go func AesOfbDecrypt(encrypted, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefghijklmnop" encrypted := cryptor.AesOfbEncrypt([]byte(data), []byte(key)) decrypted := cryptor.AesCfbDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### Base64StdEncodeEncode string with base64 encoding.
Signature: ```go func Base64StdEncode(s string) string ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { base64Str := cryptor.Base64StdEncode("hello") fmt.Println(base64Str) // Output: // aGVsbG8= } ``` ### Base64StdDecodeDecode a base64 encoded string.
Signature: ```go func Base64StdDecode(s string) string ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { str := cryptor.Base64StdDecode("aGVsbG8=") fmt.Println(str) // Output: // hello } ``` ### DesEcbEncryptEncrypt data with key use DES ECB algorithm. Length of `key` param should be 8.
Signature: ```go func DesEcbEncrypt(data, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefgh" encrypted := cryptor.DesEcbEncrypt([]byte(data), []byte(key)) decrypted := cryptor.DesEcbDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### DesEcbDecryptDecrypt data with key use DES ECB algorithm. Length of `key` param should be 8.
Signature: ```go func DesEcbDecrypt(encrypted, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefgh" encrypted := cryptor.DesEcbEncrypt([]byte(data), []byte(key)) decrypted := cryptor.DesEcbDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### DesCbcEncryptEncrypt data with key use DES CBC algorithm. Length of `key` param should be 8.
Signature: ```go func DesCbcEncrypt(data, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefgh" encrypted := cryptor.DesCbcEncrypt([]byte(data), []byte(key)) decrypted := cryptor.DesCbcDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### DesCbcDecryptDecrypt data with key use DES CBC algorithm. Length of `key` param should be 8.
Signature: ```go func DesCbcDecrypt(encrypted, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefgh" encrypted := cryptor.DesCbcEncrypt([]byte(data), []byte(key)) decrypted := cryptor.DesCbcDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### DesCtrCryptEncrypt or decrypt data with key use DES CTR algorithm. Length of `key` param should be 8.
Signature: ```go func DesCtrCrypt(data, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefgh" encrypted := cryptor.DesCtrCrypt([]byte(data), []byte(key)) decrypted := cryptor.DesCtrCrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### DesCfbEncryptEncrypt data with key use DES CFB algorithm. Length of `key` param should be 8.
Signature: ```go func DesCfbEncrypt(data, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefgh" encrypted := cryptor.DesCfbEncrypt([]byte(data), []byte(key)) decrypted := cryptor.DesCfbDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### DesCfbDecryptDecrypt data with key use DES CBC algorithm. Length of `key` param should be 8.
Signature: ```go func DesCfbDecrypt(encrypted, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefgh" encrypted := cryptor.DesCfbEncrypt([]byte(data), []byte(key)) decrypted := cryptor.DesCfbDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### DesOfbEncryptEnecrypt data with key use DES OFB algorithm. Length of `key` param should be 8.
Signature: ```go func DesOfbEncrypt(data, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefgh" encrypted := cryptor.DesOfbEncrypt([]byte(data), []byte(key)) decrypted := cryptor.DesOfbDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### DesOfbDecryptDecrypt data with key use DES OFB algorithm. Length of `key` param should be 8.
Signature: ```go func DesOfbDecrypt(encrypted, key []byte) []byte ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { data := "hello" key := "abcdefgh" encrypted := cryptor.DesOfbEncrypt([]byte(data), []byte(key)) decrypted := cryptor.DesOfbDecrypt(encrypted, []byte(key)) fmt.Println(string(decrypted)) // Output: // hello } ``` ### HmacMd5Get the md5 hmac hash of string.
Signature: ```go func HmacMd5(data, key string) string ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { str := "hello" key := "12345" hms := cryptor.HmacMd5(str, key) fmt.Println(hms) // Output: // e834306eab892d872525d4918a7a639a } ``` ### HmacSha1Get the sha1 hmac hash of string.
Signature: ```go func HmacSha1(data, key string) string ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { str := "hello" key := "12345" hms := cryptor.HmacSha1(str, key) fmt.Println(hms) // Output: // 5c6a9db0cccb92e36ed0323fd09b7f936de9ace0 } ``` ### HmacSha256Get the sha256 hmac hash of string
Signature: ```go func HmacSha256(data, key string) string ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { str := "hello" key := "12345" hms := cryptor.HmacSha256(str, key) fmt.Println(hms) // Output: // 315bb93c4e989862ba09cb62e05d73a5f376cb36f0d786edab0c320d059fde75 } ``` ### HmacSha512Get the sha512 hmac hash of string.
Signature: ```go func HmacSha512(data, key string) string ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { str := "hello" key := "12345" hms := cryptor.HmacSha512(str, key) fmt.Println(hms) // Output: // dd8f1290a9dd23d354e2526d9a2e9ce8cffffdd37cb320800d1c6c13d2efc363288376a196c5458daf53f8e1aa6b45a6d856303d5c0a2064bff9785861d48cfc } ``` ### Md5StringGet the md5 value of string.
Signature: ```go func Md5String(s string) string ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { str := "hello" md5Str := cryptor.Md5String(str) fmt.Println(md5Str) // Output: // 5d41402abc4b2a76b9719d911017c592 } ``` ### Md5FileGet the md5 value of file.
Signature: ```go func Md5File(filepath string) (string, error) ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { s := cryptor.Md5File("./main.go")) fmt.Println(s) } ``` ### Sha1Get the sha1 value of string.
Signature: ```go func Sha1(data string) string ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { str := "hello" result := cryptor.Sha1(str) fmt.Println(result) // Output: // aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d } ``` ### Sha256Get the sha256 value of string.
Signature: ```go func Sha256(data string) string ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { str := "hello" result := cryptor.Sha256(str) fmt.Println(result) // Output: // 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 } ``` ### Sha512Get the sha512 value of string.
Signature: ```go func Sha512(data string) string ``` Example: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/cryptor" ) func main() { str := "hello" result := cryptor.Sha512(str) fmt.Println(result) // Output: // 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043 } ``` ### GenerateRsaKeyCreate the rsa public and private key file in current directory.
Signature: ```go func GenerateRsaKey(keySize int, priKeyFile, pubKeyFile string) error ``` Example: ```go 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) } } ``` ### RsaEncryptEncrypt data with public key file useing ras algorithm.
Signature: ```go func RsaEncrypt(data []byte, pubKeyFileName string) []byte ``` Example: ```go 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 { return } data := []byte("hello") encrypted := cryptor.RsaEncrypt(data, "rsa_public.pem") decrypted := cryptor.RsaDecrypt(encrypted, "rsa_private.pem") fmt.Println(string(decrypted)) // Output: // hello } ``` ### RsaDecryptDecrypt data with private key file useing ras algorithm.
Signature: ```go func RsaDecrypt(data []byte, privateKeyFileName string) []byte ``` Example: ```go 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 { return } data := []byte("hello") encrypted := cryptor.RsaEncrypt(data, "rsa_public.pem") decrypted := cryptor.RsaDecrypt(encrypted, "rsa_private.pem") fmt.Println(string(decrypted)) // Output: // hello } ```