private string CifraVigenere(string msg, string chaveEntrada, bool cifrar)
        {
            StringBuilder sb        = new StringBuilder();
            var           decifrada = FuncionalidadesBasicas.NormalizarString(msg);
            var           chave     = FuncionalidadesBasicas.NormalizarString(chaveEntrada);

            chave = AlterarTamanhoChave(decifrada, chave);

            var msgArray   = decifrada.ToCharArray();
            var chaveArray = chave.ToCharArray();

            for (var i = 0; i < msgArray.Length; i++)
            {
                int caracterAscii;

                var aux = (int)chaveArray[i] - 96;

                if (cifrar)
                {
                    caracterAscii = ((int)msgArray[i] + aux + 25 - 96) % 26 + 97;
                }
                else
                {
                    caracterAscii = ((int)msgArray[i] - aux + 25 - 96) % 26 + 97;
                }
                sb.Append((char)caracterAscii);
            }
            return(sb.ToString());
        }
示例#2
0
        private string CifraCesar(bool soma, string msg)
        {
            msg = FuncionalidadesBasicas.NormalizarString(msg);

            var           msgArray = msg.ToCharArray();
            StringBuilder sb       = new StringBuilder();

            for (var i = 0; i < msgArray.Length; i++)
            {
                int caracterAscii;
                if (soma)
                {
                    caracterAscii = ((int)msgArray[i] + int.Parse(tbPosicoes.Text) + 25 - 96) % 26 + 97;
                }
                else
                {
                    caracterAscii = (((int)msgArray[i] - int.Parse(tbPosicoes.Text) + 25 - 96) % 26 + 97);
                }
                sb.Append((char)(caracterAscii));
            }
            return(sb.ToString());
        }