First: OpenSSL
C language implementation, the entire software package can be divided into three main functional parts: cryptographic algorithm library, SSL protocol library and applications. The directory structure of OpenSSL is naturally planned around these three functional parts. As a cryptography-based security development kit, OpenSSL provides powerful and comprehensive functions, including major cryptographic algorithms, common key and certificate encapsulation management functions, and SSL protocols, and provides a wide range of applications for testing or other purposes. The Code volume is large, which is not very convenient to use. Supports cross-platform.
Second: crypto ++
Implemented in C ++, the code is huge and complex, and it is inconvenient to use. Supports cross-platform.
Third: CyaSSL
C language implementation, this software package is a fast, dual-Protocol Implementation of SSL, mainly applicable to embedded devices. It contains an SSL client and server time, supports multiple API methods compatible with OpenSSL, supports TLS 1.1 and AES, 3DES, RC4, HC-128, and RABBIT encryption methods.
Fourth: jsCrypto and Crypto-JS and pidCrypt
The encryption and decryption library implemented by java script. JsCrypto is a JavaScript library that implements some common encryption methods. supported algorithms include AES, SHA-1, HMAC, BASE64, RSA, ECC and IBE, this library can also be used in ActionScript. Crypto-JS provides a variety of encryption algorithms for JavaScript, including MD5, SHA-1, SHA-256, AES, Rabbit, MARC4, HMAC.
PidCrypt is a JavaScript modular encryption library that supports: AES (CBC & CTR Mode), RSA, MD5, SHA-1, SHA-256, SHA-384, SHA-512, ASN.1, Base64, UTF-8. the AES-CBC mode is compatible to OpenSSL.
Fifth: xyssl
C language implementation, easy to use. Implements most of the commonly used encryption and decryption algorithms. For: http://xyssl.sourcearchive.com/downloads/0.9/xyssl_0.9.orig.tar.gz
From instructor Zhang's column