- Notifications
You must be signed in to change notification settings - Fork48
A functions wrapping of OpenSSL library for symmetric and asymmetric encryption and decryption.
License
NotificationsYou must be signed in to change notification settings
forgoer/openssl
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A functions wrapping of OpenSSL library for symmetric and asymmetric encryption and decryption
The only requirement is theGo Programming Language
go get -u github.com/forgoer/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))// 123456
AES-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))// 123456
The 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(bitsint,outio.Writer)openssl.RSAGeneratePublicKey(priKey []byte, outio.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 stringSha1(str string) []byte// HmacSha1 Calculate the sha1 hash of a string using the HMAC methodHmacSha1(key string, data string) []byte// HmacSha1ToString Calculate the sha1 hash of a string using the HMAC method, outputs lowercase hexitsHmacSha1ToString(key string, data string) string// Sha256 Calculate the sha256 hash of a stringSha256(str string) []byte// HmacSha256 Calculate the sha256 hash of a string using the HMAC methodHmacSha256(key string, data string) []byte// HmacSha256ToString Calculate the sha256 hash of a string using the HMAC method, outputs lowercase hexitsHmacSha256ToString(key string, data string) string
This project is licensed under theApache 2.0 license.
If you have any issues or feature requests, please contact us. PR is welcomed.
About
A functions wrapping of OpenSSL library for symmetric and asymmetric encryption and decryption.
Topics
Resources
License
Stars
Watchers
Forks
Packages0
No packages published