/AES

This repository demonstrates the implementation of cryptographic algorithms including AES for encryption, MD5 and SHA-256 for hashing, and HMAC-MD5 for message authentication. These C code examples are ideal for learning secure data handling techniques in modern applications.

Primary LanguageC

AES (Advanced Encryption Standard):

AES is a symmetric encryption algorithm widely used for secure data transmission. It operates on fixed block sizes (typically 128 bits) and supports key sizes of 128, 192, or 256 bits. AES is highly efficient and secure, making it the standard choice for encryption in various applications, such as secure communications and data storage.

MD5 (Message Digest Algorithm 5):

MD5 is a widely used cryptographic hash function that produces a 128-bit hash value. It is commonly used for verifying data integrity. However, MD5 is considered cryptographically broken and unsuitable for further use due to vulnerabilities such as collision attacks, where two different inputs produce the same hash.

HMAC-MD5 (Hash-based Message Authentication Code using MD5):

HMAC-MD5 combines the MD5 hash function with a secret key to provide message integrity and authentication. While MD5 alone is considered insecure, HMAC-MD5 remains a viable option for message authentication in certain legacy systems because it strengthens MD5’s security by combining it with a secret key.

SHA-256 (Secure Hash Algorithm 256-bit):

SHA-256 is a member of the SHA-2 family of cryptographic hash functions and produces a 256-bit hash value. It is widely used for data integrity checks and digital signatures in many security protocols, such as SSL/TLS, Bitcoin, and blockchain technology. SHA-256 is considered secure and is recommended for modern cryptographic applications.