AesBridge is a modern, secure, and cross-language AES encryption library. It offers a unified interface for encrypting and decrypting data across multiple programming languages. Supports GCM, CBC, and legacy AES Everywhere modes.
This is the .NET implementation of the core project.
👉 Main repository: https://github.com/mervick/aes-bridge
- 🔐 AES-256 encryption in GCM (recommended) and CBC modes
- 🌍 Unified cross-language design
- 📦 Compact binary format or Base64 output
- ✅ HMAC Integrity: CBC mode includes HMAC verification
- 🔄 Backward Compatible: Supports legacy AES Everywhere format
Install the package via NuGet Package Manager Console:
Install-Package AesBridgeor via .NET CLI:
dotnet add package AesBridgeusing AesBridge;
// AES-GCM (recommended)
string gcmCiphertext = AesBridge.Gcm.Encrypt("My secret data", "MyStrongPass");
byte[] gcmPlaintext = AesBridge.Gcm.Decrypt(gcmCiphertext, "MyStrongPass");
// AES-CBC with HMAC validation
string cbcCiphertext = AesBridge.Cbc.Encrypt("My secret data", "MyStrongPass");
byte[] cbcPlaintext = AesBridge.Cbc.Decrypt(cbcCiphertext, "MyStrongPass");All core functions are available through the module AesBridge namespase.
Galois/Counter Mode - AES 256 with Tag
Encrypts data using a given passphrase, returning the encrypted result as a base64-encoded string
Parameters:
data:stringorbyte[]- Data to encryptpassphrase:stringorbyte[]- Encryption passphrase
Returns: string - the encrypted data as a Base64-encoded string.
Encrypts data using a given passphrase, returning binary encrypted data
Parameters:
data:stringorbyte[]- Data to encryptpassphrase:stringorbyte[]- Encryption passphrase
Returns: byte[] - encrypted data in binary format: salt + nonce + ciphertext + tag
Decrypts Base64-encoded data using a given passphrase
Parameters:
data:stringorbyte[]- Data to decrypt in base64-encoded formatpassphrase:stringorbyte[]- Encryption passphrase
Returns: byte[] - decrypted data
Decrypts binary data using a given passphrase
Parameters:
data:byte[]- Data to decrypt in binary format:salt + nonce + ciphertext + tagpassphrase:stringorbyte[]- Encryption passphrase
Returns: byte[] – decrypted data in binary form.
Cipher Block Chaining with HMAC Verification - AES 256
Encrypts data using a given passphrase, returning the encrypted result as a base64-encoded string
Parameters:
data:stringorbyte[]- Data to encryptpassphrase:stringorbyte[]- Encryption passphrase
Returns: string - the encrypted data as a Base64-encoded string.
Encrypts data using a given passphrase, returning binary encrypted data
Parameters:
data:stringorbyte[]- Data to encryptpassphrase:stringorbyte[]- Encryption passphrase
Returns: byte[] - encrypted data in binary format: salt + nonce + ciphertext + tag
Decrypts Base64-encoded data using a given passphrase
Parameters:
data:stringorbyte[]- Data to decrypt in base64-encoded formatpassphrase:stringorbyte[]- Encryption passphrase
Returns: byte[] - decrypted data
Decrypts binary data using a given passphrase
Parameters:
data:byte[]- Data to decrypt in binary format:salt + nonce + ciphertext + tagpassphrase:stringorbyte[]- Encryption passphrase
Returns: byte[] – decrypted data in binary form.
Encrypts data using a given passphrase.
Parameters:
data:stringorbyte[]- Data to encrypt.passphrase:stringorbyte[]- Encryption passphrase.
Returns: string - Encrypted data.
Decrypts string data using a given passphrase.
Parameters:
data:stringorbyte[]- Data to decrypt in base64-encoded formatpassphrase:stringorbyte[]- Encryption passphrase.
Returns: string - Decrypted data.
Decrypts string data to a byte array using a given passphrase.
Parameters:
data:stringorbyte[]- Data to decrypt in base64-encoded formatpassphrase:stringorbyte[]- Encryption passphrase.
Returns: byte[] - Decrypted data as a byte array.