SubstitutionCiphers 1.1.0
dotnet add package SubstitutionCiphers --version 1.1.0
NuGet\Install-Package SubstitutionCiphers -Version 1.1.0
<PackageReference Include="SubstitutionCiphers" Version="1.1.0" />
<PackageVersion Include="SubstitutionCiphers" Version="1.1.0" />
<PackageReference Include="SubstitutionCiphers" />
paket add SubstitutionCiphers --version 1.1.0
#r "nuget: SubstitutionCiphers, 1.1.0"
#:package SubstitutionCiphers@1.1.0
#addin nuget:?package=SubstitutionCiphers&version=1.1.0
#tool nuget:?package=SubstitutionCiphers&version=1.1.0
Griffinere Cipher 🔐
The Griffinere cipher is a custom encryption algorithm in C# designed for reversible, base64-normalized encryption using a repeating key. Inspired by the Vigenère cipher, it adds configurable alphabet support, input validation, and padding-based encryption length enforcement.
📦 Installation
Copy the Griffinere.cs
file into your .NET project or install from the Nuget Library: dotnet add package SubstitutionCiphers
https://github.com/RileyG00/Ciphers
In your code:
using Ciphers;
✨ Features
🔐 Encrypts and decrypts alphanumeric or custom alphabet-based strings
🧩 Allows defining your own alphabet
📏 Supports minimum-length encrypted responses via padding
✅ Includes strong validation for alphabet and key integrity
🧪 Unit tested with xUnit
🧰 Usage
1.1: Creating the Cipher Using the default alphabet:
string key = "YourSecureKey123";
Griffinere cipher = new(key);
Default alphabet includes:
A-Z
a-z
0-9
1.2: Creating the Cipher Using a custom alphabet:
string customAlphabet = "abcdef123456";
string key = "a1c";
Griffinere cipher = new(customAlphabet, key);
Alphabet Rules
- Must not contain . (dot character)
- All characters must be unique
- All characters in the key must exist in the alphabet
2.1: Encrypt a String
string plainText = "Hello World 123";
string encrypted = cipher.EncryptString(plainText);
2.2: Encrypt a String with Minimum Length
string plainText = "Hello World 123";
string encrypted = cipher.EncryptString("Short text", minimumResponseLength: 24);
3.1: Decrypt a String
string decrypted = cipher.DecryptString(encrypted);
// Returns the original plain text
⚠️ Exceptions and Validations
Tables
Condition | Exception |
---|---|
Alphabet contains . | ArgumentException |
Alphabet has duplicate characters | ArgumentException |
Key contains characters not in alphabet | ArgumentException |
Specifying minimum length < 1 | ArgumentOutOfRangeException |
📄 License
MIT License © 2025 Riley Griffin
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.