# openssl **Repository Path**: storyflow/openssl ## Basic Information - **Project Name**: openssl - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-18 - **Last Updated**: 2021-08-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Openssl encryption [![Build Status](https://www.travis-ci.org/forgoer/openssl.svg?branch=master)](https://www.travis-ci.org/forgoer/openssl) [![Coverage Status](https://coveralls.io/repos/github/forgoer/openssl/badge.svg?branch=master)](https://coveralls.io/github/forgoer/openssl?branch=master) A functions wrapping of OpenSSL library for symmetric and asymmetric encryption and decryption ## Installation The only requirement is the [Go Programming Language](https://golang.org/dl/) ``` go get -u github.com/forgoer/openssl ``` ## Usage ### AES The length of the key can be 16/24/32 characters (128/192/256 bits) AES-ECB: ```go 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)) // 123456 ``` AES-CBC: ```go 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)) // 123456 ``` ### DES The length of the key must be 8 characters (64 bits). DES-ECB: ```go openssl.DesECBEncrypt(src, key, openssl.PKCS7_PADDING) openssl.DesECBDecrypt(src, key, openssl.PKCS7_PADDING) ``` DES-CBC: ```go openssl.DesCBCEncrypt(src, key, iv, openssl.PKCS7_PADDING) openssl.DesCBCDecrypt(src, key, iv, openssl.PKCS7_PADDING) ``` ### 3DES The length of the key must be 24 characters (192 bits). 3DES-ECB: ```go openssl.Des3ECBEncrypt(src, key, openssl.PKCS7_PADDING) openssl.Des3ECBDecrypt(src, key, openssl.PKCS7_PADDING) ``` 3DES-CBC: ```go openssl.Des3CBCEncrypt(src, key, iv, openssl.PKCS7_PADDING) openssl.Des3CBCDecrypt(src, key, iv, openssl.PKCS7_PADDING) ``` ## License This project is licensed under the [Apache 2.0 license](LICENSE). ## Contact If you have any issues or feature requests, please contact us. PR is welcomed. - https://github.com/forgoer/openssl/issues