Here's the Markdown version of your text.
This project is an experiment in cross-language string encryption, providing a set of utility classes in Java, C#, and Python for AES encryption and decryption. An Angular component is also included but has not been tested yet.
All implementations use AES in CBC mode with PKCS7 (or the compatible PKCS5 in Java) padding. Keys are derived from a password using the PBKDF2 algorithm with HMAC-SHA1.
For successful encryption and decryption across languages, the following critical parameters must be identical in every implementation:
- AES Key Length: 128-bit
- Mode:
CBC(Cipher Block Chaining) - Padding:
PKCS7 - PBKDF2 Iterations: 65,536
- Password: The secret password used for key derivation.
- Salt: The salt used with the password for key derivation.
- IV (Initialization Vector): Must be 16 bytes (128 bits).