A functions wrapping of OpenSSL library for symmetric and asymmetric encryption and decryption
The only requirement is the Go Programming Language
go get -u github.com/go-think/openssl The length of the key can be 16/24/32 characters (128/192/256 bits)
AES-ECB:
src := []byte("123456") key := []byte("1234567890123456") dst , _ := openssl.AesECBEncrypt(src, key, openssl.PKCS7_PADDING) fmt.Printf(base64.StdEncoding.EncodeToString(dst)) // yXVUkR45PFz0UfpbDB8/ew== dst , _ = openssl.AesECBDecrypt(dst, key, openssl.PKCS7_PADDING) fmt.Println(string(dst)) // 123456AES-CBC:
src := []byte("123456") key := []byte("1234567890123456") iv := []byte("1234567890123456") dst , _ := openssl.AesCBCEncrypt(src, key, iv, openssl.PKCS7_PADDING) fmt.Println(base64.StdEncoding.EncodeToString(dst)) // 1jdzWuniG6UMtoa3T6uNLA== dst , _ = openssl.AesCBCDecrypt(dst, key, iv, openssl.PKCS7_PADDING) fmt.Println(string(dst)) // 123456The length of the key must be 8 characters (64 bits).
DES-ECB:
openssl.DesECBEncrypt(src, key, openssl.PKCS7_PADDING) openssl.DesECBDecrypt(src, key, openssl.PKCS7_PADDING)DES-CBC:
openssl.DesCBCEncrypt(src, key, iv, openssl.PKCS7_PADDING) openssl.DesCBCDecrypt(src, key, iv, openssl.PKCS7_PADDING)The length of the key must be 24 characters (192 bits).
3DES-ECB:
openssl.Des3ECBEncrypt(src, key, openssl.PKCS7_PADDING) openssl.Des3ECBDecrypt(src, key, openssl.PKCS7_PADDING)3DES-CBC:
openssl.Des3CBCEncrypt(src, key, iv, openssl.PKCS7_PADDING) openssl.Des3CBCDecrypt(src, key, iv, openssl.PKCS7_PADDING)openssl.RSAGenerateKey(bits int, out io.Writer) openssl.RSAGeneratePublicKey(priKey []byte, out io.Writer) openssl.RSAEncrypt(src, pubKey []byte) ([]byte, error) openssl.RSADecrypt(src, priKey []byte) ([]byte, error) openssl.RSASign(src []byte, priKey []byte, hash crypto.Hash) ([]byte, error) openssl.RSAVerify(src, sign, pubKey []byte, hash crypto.Hash) error// Sha1 Calculate the sha1 hash of a string Sha1(str string) []byte // HmacSha1 Calculate the sha1 hash of a string using the HMAC method HmacSha1(key string, data string) []byte // HmacSha1ToString Calculate the sha1 hash of a string using the HMAC method, outputs lowercase hexits HmacSha1ToString(key string, data string) string // Sha256 Calculate the sha256 hash of a string Sha256(str string) []byte // HmacSha256 Calculate the sha256 hash of a string using the HMAC method HmacSha256(key string, data string) []byte // HmacSha256ToString Calculate the sha256 hash of a string using the HMAC method, outputs lowercase hexits HmacSha256ToString(key string, data string) string This project is licensed under the Apache 2.0 license.
If you have any issues or feature requests, please contact us. PR is welcomed.