public string ExecVigenereCipher(Mode mode, CipherVigenereDto dto)
        {
            int d = mode == Mode.Encrypt ? 1 : -1;
            int pwi = 0, tmp;
            var ns = "";

            dto.Input = dto.Input.ToUpper();
            dto.Key   = dto.Key.ToUpper();
            foreach (char t in dto.Input)
            {
                if (t < 65)
                {
                    continue;
                }
                tmp = t - 65 + d * (dto.Key[pwi] - 65);
                if (tmp < 0)
                {
                    tmp += 26;
                }
                ns += Convert.ToChar(65 + tmp % 26);
                if (++pwi == dto.Key.Length)
                {
                    pwi = 0;
                }
            }

            return(ns);
        }
Exemple #2
0
        public void CheckIfVigenereCipherWorksCorrectly(string input, string key, string encryptedInput, Mode mode)
        {
            var service = new CipherService();
            var dto     = new CipherVigenereDto
            {
                Input = input,
                Key   = key
            };
            string actual = service.ExecVigenereCipher(mode, dto);

            Assert.AreEqual(encryptedInput, actual);
        }
Exemple #3
0
        public async Task <IActionResult> GetVigenereCipherDecode([FromQuery] CipherVigenereDto dto)
        {
            string result = _cipherService.ExecVigenereCipher(Mode.Decrypt, dto);

            return(Ok(result));
        }