密码代换技术验证

验证凯撒密码,并输入明文实现单表代码密码,密钥为I MISS YOU SO MUCH

using System;
using System.Collections.Generic;
using System.Text;

namespace Fan
{
    class Program
    {
        static void Main(string[] args)
        {
            string m = "abcdefghijklmnopqrstuvwxyz";
            char[] zimu = m.ToCharArray();
            List<char> yuanbiao = new List<char>();
            Console.WriteLine(" 置换表:");
            for (int i = 0; i < zimu.Length; i++)
            {
                
                yuanbiao.Add(zimu[i]);
                Console.Write(zimu[i] + " ");

            }
            Console.WriteLine();
            //代换表
            List<char> listString = daihuanbiao();
            foreach (char eachString in listString)
            {
                Console.Write(eachString + " ");
            }
            Console.WriteLine();
            Console.Write("请输入要置换的明文:");
	    string mingwen =Console.ReadLine();
            
            
            char[] ming = mingwen.Trim().ToCharArray();
            List<char> miwen = new List<char>();        
            Console.Write("密文:");
            for (int i = 0; i < ming.Length;i++ )
            {
              
               int num = yuanbiao.IndexOf(ming[i]);
               Console.Write(listString[num]+ " ");
            
            }   
            Console.ReadKey();
        }
        
        private static List<char> daihuanbiao()
        {
            //密钥
            char[] stringArray = { 'i', 'm', 'i', 's', 's', 'y', 'o', 'u' };
            //26字母表
            string m = "abcdefghijklmnopqrstuvwxyz";
            char[] zimu = m.ToCharArray();

            List<char> listString = new List<char>();
            //获取删除相同字母的密钥
            List<char> Array = Delete(stringArray);
            //列表中添加密钥
            for (int i = 0; i < Array.Count; i++)
            {
                if (!listString.Contains(Array[i]))
                    listString.Add(Array[i]);
            }
            //列表中添加剩余26字母

            for (int i = 0; i < zimu.Length; i++)
            {
                if (!listString.Contains(zimu[i]))
                    listString.Add(zimu[i]);
            }
            return listString;
        }
        
        private static List<char> Delete(char[] stringArray)
        {
           
            //List用于存储从数组里取出来的不相同的元素
            List<char> listString = new List<char>();
            foreach (char eachString in stringArray)
            {
                if (!listString.Contains(eachString))
                    listString.Add(eachString);
            }

            return listString;
        }
    }
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值