A .NET package for text encryption and decryption using classic ciphers with customizable parameters and additional functions. Supported ciphers: A1Z26, Affine, Atbash, Caesar, Morse.
$ dotnet add package Ciphers.NETA .NET package for text encryption and decryption using classic ciphers.
Supported ciphers:
Features:
Caesar cipher and not providing the Key - a dictionary (Dictionary<int, string>) is returned that contains all of the messages for every possible Key.Affine cipher and not providing A and B coefficients - a dictionary (Dictionary<Tuple<int, int>, string>) is returned that contains all of the messages for every possible A and B combination.Package Manager
Install-Package Ciphers.NET
.NET CLI
dotnet add package Ciphers.NET
PackageReference (Add to your .csproj file)
<PackageReference Include="Ciphers.NET" Version="1.0.0" />
Basic Encryption and Decryption:
string message = "Hello World!";
string encryptedMessage = A1Z26.Encrypt(message);
Console.WriteLine($"Encrypted Message: {encryptedMessage}");
string decryptedMessage = A1Z26.Decrypt(encryptedMessage);
Console.WriteLine($"Decrypted Message: {decryptedMessage}");
Encryption and Decryption with a Custom Alphabet:
string message = "Hello World! 123";
string alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
string encryptedMessage = A1Z26.Encrypt(message, alphabet: alphabet);
Console.WriteLine($"Encrypted Message: {encryptedMessage}");
string decryptedMessage = A1Z26.Decrypt(encryptedMessage, alphabet: alphabet);
Console.WriteLine($"Decrypted Message: {decryptedMessage}");
Encryption and Decryption with a Custom Key:
string message = "Hello World!";
int key = 3;
string encryptedMessage = A1Z26.Encrypt(message, key: key);
Console.WriteLine($"Encrypted Message: {encryptedMessage}");
string decryptedMessage = A1Z26.Decrypt(encryptedMessage, key: key);
Console.WriteLine($"Decrypted Message: {decryptedMessage}");
Encryption and Decryption with a Custom Separator:
string message = "Hello World!";
char separator = '-';
string encryptedMessage = A1Z26.Encrypt(message, separator: separator);
Console.WriteLine($"Encrypted Message: {encryptedMessage}");
string decryptedMessage = A1Z26.Decrypt(encryptedMessage, separator: separator);
Console.WriteLine($"Decrypted Message: {decryptedMessage}");
Basic Encryption and Decryption:
string message = "Hello";
int a = 5;
int b = 8;
string encryptedMessage = Affine.Encrypt(message, a, b);
Console.WriteLine($"Encrypted Message: {encryptedMessage}");
string decryptedMessage = Affine.Decrypt(encryptedMessage, a, b);
Console.WriteLine($"Decrypted Message: {decryptedMessage}");
Encryption and Decryption with All Possible (a, b) Pairs:
string message = "Affine";
Dictionary<Tuple<int, int>, string> encryptedMessages = Affine.Encrypt(message);
foreach (var pair in encryptedMessages)
{
Console.WriteLine($"a: {pair.Key.Item1}, b: {pair.Key.Item2}, Encrypted Message: {pair.Value}");
}
string encryptedMessage = "Baainf";
Dictionary<Tuple<int, int>, string> decryptedMessages = Affine.Decrypt(encryptedMessage);
foreach (var pair in decryptedMessages)
{
Console.WriteLine($"a: {pair.Key.Item1}, b: {pair.Key.Item2}, Decrypted Message: {pair.Value}");
}
Basic Encryption and Decryption:
string message = "Hello, World!";
string encryptedMessage = Atbash.Encrypt(message);
Console.WriteLine($"Encrypted Message: {encryptedMessage}");
string decryptedMessage = Atbash.Decrypt(encryptedMessage);
Console.WriteLine($"Decrypted Message: {decryptedMessage}");
Encryption and Decryption with a Custom Alphabet:
string message = "Hello, World!123";
string customAlphabet = "abcdefghijklmnopqrstuvwxyz123";
string encryptedMessage = Atbash.Encrypt(message, customAlphabet);
Console.WriteLine($"Encrypted Message: {encryptedMessage}");
string decryptedMessage = Atbash.Decrypt(encryptedMessage, customAlphabet);
Console.WriteLine($"Decrypted Message: {decryptedMessage}");
Basic Encryption and Decryption:
string message = "Hello, World!";
int key = 3;
string encryptedMessage = Caesar.Encrypt(message, key);
Console.WriteLine($"Encrypted Message: {encryptedMessage}");
string decryptedMessage = Caesar.Decrypt(encryptedMessage, key);
Console.WriteLine($"Decrypted Message: {decryptedMessage}");
Encryption and Decryption with a Custom Alphabet:
string message = "Hello, Earth-616!";
int key = 3;
string customAlphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
string encryptedMessage = Caesar.Encrypt(message, key, customAlphabet);
Console.WriteLine($"Encrypted Message: {encryptedMessage}");
string decryptedMessage = Caesar.Decrypt(encryptedMessage, key, customAlphabet);
Console.WriteLine($"Decrypted Message: {decryptedMessage}");
Encryption and Decryption with an Invalid Key:
string message = "Hello, World!";
int key = -3;
string encryptedMessage = Caesar.Encrypt(message, key);
Console.WriteLine($"Encrypted Message: {encryptedMessage}");
key = 49;
string decryptedMessage = Caesar.Decrypt(encryptedMessage, key);
Console.WriteLine($"Decrypted Message: {decryptedMessage}");
Encryption and Decryption with All Possible Keys:
string message = "Hello, World!";
Dictionary<int, string> encryptedMessages = Caesar.Encrypt(message);
foreach (var pair in encryptedMessages)
{
Console.WriteLine($"Key: {pair.Key}, Encrypted Message: {pair.Value}");
}
string encryptedMessage = "Khoor, Zruog!";
Dictionary<int, string> decryptedMessages = Caesar.Decrypt(encryptedMessage);
foreach (var pair in decryptedMessages)
{
Console.WriteLine($"Key: {pair.Key}, Decrypted Message: {pair.Value}");
}
Basic Encryption and Decryption:
string message = "Hello, World!";
string encryptedMessage = Morse.Encrypt(message);
Console.WriteLine($"Encrypted Message: {encryptedMessage}");
string decryptedMessage = Morse.Decrypt(encryptedMessage);
Console.WriteLine($"Decrypted Message: {decryptedMessage}");
This project is licensed under the MIT license. Copyright (c) 2024 Griske24