So I was kind of bored over this weekend, and I decided that it would be a good exercise to write a Caesar Cipher. Here is my code:
class CaesarCipher { private string Sentence; private int EncryptShift; private int DecryptShift; private bool IsEncrypted = false; public CaesarCipher(string input, int shifting) { Sentence = input.ToLower(); EncryptShift = shifting; DecryptShift = -shifting; } public string Encrypt() { if (IsEncrypted) return Sentence; char[] char_array = Sentence.ToCharArray(); Shuffle(char_array, EncryptShift); Recunstruct(char_array); return Sentence; } public string Decrypt() { if (!IsEncrypted) return Sentence; char[] char_array = Sentence.ToCharArray(); Shuffle(char_array, DecryptShift); Recunstruct(char_array); return Sentence; } private void Shuffle(char[] char_array, int shift) { for (int index = 0; index < char_array.Length; index++) { char letter = char_array[index]; if (letter >= 'a' && letter <= 'z') { letter = (char)(letter + shift); if (letter > 'z') letter = (char)(letter - 26); else if (letter < 'a') letter = (char)(letter + 26); } char_array[index] = letter; } } private void Recunstruct(char[] char_array) { Sentence = null; foreach (char letter in char_array) Sentence += letter; IsEncrypted = true; } }
That's all for now, thanks for reading!
No comments:
Post a Comment