Ejemplo n.º 1
0
        public string EncryptMessage(string message)
        {
            StringBuilder cipherMessage = new StringBuilder();
            char          curChar;

            foreach (char c in message)
            {
                curChar = plugboard.Cipher(c);
                curChar = etw.CipherInput(curChar);
                curChar = rightRotor.DeflectAndCipher(curChar);
                curChar = rightRotor.IsInTurnover() ? middleRotor.DeflectAndCipher(curChar) : middleRotor.CipherInput(curChar);
                curChar = middleRotor.IsInTurnover() ? leftRotor.DeflectAndCipher(curChar) : leftRotor.CipherInput(curChar);
                curChar = ukw.CipherInput(curChar);
                curChar = leftRotor.CipherOutput(curChar);
                curChar = middleRotor.CipherOutput(curChar);
                curChar = rightRotor.CipherOutput(curChar);
                curChar = etw.CipherOutput(curChar);
                curChar = plugboard.Cipher(curChar);

                cipherMessage.Append(curChar);
            }

            return(cipherMessage.ToString());
        }