All Projects → forgoer → openssl

forgoer / openssl

Licence: Apache-2.0 license
A functions wrapping of OpenSSL library for symmetric and asymmetric encryption and decryption.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to openssl

crypto
🔐 Fastest crypto library for Deno written in pure Typescript. AES, Blowfish, CAST5, DES, 3DES, HMAC, HKDF, PBKDF2
Stars: ✭ 40 (-79.9%)
Mutual labels:  aes, des, cbc, ecb
libVES.c
VESvault End-to-End Encryption API: Encrypt Everything Without Fear of Losing the Key
Stars: ✭ 28 (-85.93%)
Mutual labels:  aes, aes-256, aes-encryption
webcrypto
A WebCrypto Polyfill for NodeJS
Stars: ✭ 111 (-44.22%)
Mutual labels:  aes, rsa, des
cryptalk
HTML5/Node.js based, client side (E2EE) encrypted instant chat
Stars: ✭ 73 (-63.32%)
Mutual labels:  aes, aes-256, aes-encryption
jscrypto
Crypto library for Node/ES6/Typescript/Browser.
Stars: ✭ 20 (-89.95%)
Mutual labels:  aes, openssl, des
Swcrypt
RSA public/private key generation, RSA, AES encryption/decryption, RSA sign/verify in Swift with CommonCrypto in iOS and OS X
Stars: ✭ 632 (+217.59%)
Mutual labels:  aes, openssl, rsa
Python-File-Encryptor
Encrypt and Decrypt files using Python (AES CBC MODE)
Stars: ✭ 51 (-74.37%)
Mutual labels:  aes, aes-encryption, cbc
aesCbc
aes-cbc加密解密
Stars: ✭ 68 (-65.83%)
Mutual labels:  aes, aes-256, aes-cbc
dart crypto
[Flutter] 本项目基于flutter_macos_v0.5.8-dev版本采用Dart语言开发。`DYFCryptoProvider`集成了Base64, 32/16 Bits MD5, AES, RSA等算法。(This Flutter project is developed in Dart language based on flutter_macos_v0.5.8-dev. `DYFCryptoProvider` integrates Base64, 32/16 Bits MD5, AES and RSA algorithms.)
Stars: ✭ 30 (-84.92%)
Mutual labels:  aes, rsa, des
Gonnacry
A Linux Ransomware
Stars: ✭ 341 (+71.36%)
Mutual labels:  aes, openssl, aes-encryption
oseid
Microchip AVR based smartcard/token with ECC and RSA cryptography
Stars: ✭ 17 (-91.46%)
Mutual labels:  aes, rsa, des
aes-stream
A fast AES-PRF based secure random-number generator
Stars: ✭ 15 (-92.46%)
Mutual labels:  aes, aes-256
img-cryptor
Image AES256 crypt-decrypt
Stars: ✭ 37 (-81.41%)
Mutual labels:  aes-256, aes-encryption
crypto.js
base on crypto module
Stars: ✭ 13 (-93.47%)
Mutual labels:  aes, rsa
encryption
A simple wrapper for the OpenSSL Cipher library for Ruby and Rails applications. Distributed as a Gem through Rubygems.
Stars: ✭ 28 (-85.93%)
Mutual labels:  openssl, rsa
Jsrsasign
The 'jsrsasign' (RSA-Sign JavaScript Library) is an opensource free cryptography library supporting RSA/RSAPSS/ECDSA/DSA signing/validation, ASN.1, PKCS#1/5/8 private/public key, X.509 certificate, CRL, OCSP, CMS SignedData, TimeStamp, CAdES JSON Web Signature/Token in pure JavaScript.
Stars: ✭ 2,760 (+1286.93%)
Mutual labels:  aes, rsa
enigma
A fast, native, cryptographic engine for the web
Stars: ✭ 101 (-49.25%)
Mutual labels:  aes, rsa
Python-SecureHTTP
Make HTTP transmissions more secure via RSA+AES, encrypted communication for C/S architecture.
Stars: ✭ 19 (-90.45%)
Mutual labels:  aes, rsa
Qt Aes
Native Qt AES encryption class
Stars: ✭ 207 (+4.02%)
Mutual labels:  aes, aes-encryption
CryptoKnight
CryptoKnight is a general purpose cryptography desktop app
Stars: ✭ 18 (-90.95%)
Mutual labels:  aes, aes-encryption

Openssl encryption

Default Coverage Status

A functions wrapping of OpenSSL library for symmetric and asymmetric encryption and decryption

Installation

The only requirement is the Go Programming Language

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:

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

DES

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)

3DES

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)

RSA

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

License

This project is licensed under the Apache 2.0 license.

Contact

If you have any issues or feature requests, please contact us. PR is welcomed.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].