C#密码加密,string转int

341 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

使用逻辑与运算对数据进行加密,并且通过密钥对数据进行解密。注:加密时可通过输入加密数据与密码进行异或,输出加密后的密码;解密时通过输入密钥与加密后的密码进行异或,并判断是否成功解密。

using System;

namespace _1_4
{
    class Program
    {
        static void Main(string[] args)
        {
            int password=123456;    //初始密码
            int password1;        //加密后的密码
            string miyao;
            Console.WriteLine("**************加密*************");
            Console.WriteLine("下面对密码:123456进行加密");
            Console.WriteLine("请输入加密秘钥:");
            miyao = Console.ReadLine();
            /*string转int*/
            int miyao1 = int.Parse(miyao);
            int miyao2;
            int.TryParse(miyao, out miyao2);
            int miyao3 = Convert.ToInt32(miyao);
            password1 = password^miyao3;
            Console.WriteLine("加密后的密码为:");
            Console.WriteLine(password1);
            Console.WriteLine("**************解密*************");
            string jiemimiyao;
            Console.WriteLine("请输入解密秘钥进行解密:");
            jiemimiyao = Console.ReadLine();
            int jiemimiyao1 = int.Parse(jiemimiyao);
            int jiemimiyao2;
            int.TryParse(jiemimiyao, out jiemimiyao2);
            int jiemimiyao3 = Convert.ToInt32(jiemimiyao);
            int pass;
            pass = password1 ^ jiemimiyao3;
            if(pass==password)
            {
                Console.WriteLine("解密成功!");
            }
            else
            {
                Console.WriteLine("解密失败!");
            }
            Console.ReadLine();
        }
    }
}


image.png

image.png

string转int

            int miyao1 = int.Parse(miyao);
            int miyao2;
            int.TryParse(miyao, out miyao2);
            int miyao3 = Convert.ToInt32(miyao);

            string year;
            year = Console.ReadLine();
            int year1= Convert.ToInt16(year);

【2-1】创建控制台应用程序,通过使用嵌套for循环,并结合if语句输出1000以内所有“完数”。注:“完数”是指一个数恰好等于它的所有因子之和。

using System;

namespace _2_1
{
    class Program
    {
        static void Main(string[] args)
        {
            int i, j, sum = 0;    //i用于控制1000以内的数字的输入,j用于控制因子的输入,sum用于求因子的累加和
            for (i = 1; i < 1000; i++)  //for循环控制判断1000以内的数字
            {
                sum = 0;    //每次循环之后将sum重置为0,用于求下个数的因子累加和
                for (j = 1; j < i; j++)  //for循环求数字的所有因子
                {
                    if ((i % j) == 0)   //if判断j是否是i的因子
                    {
                        sum += j;  //将因子累加
                    }
                }
                if (sum == i)    //如果所有的因子和恰好等于这个数,则进行下面语句块的执行
                {
                    Console.Write(i + "=1+");  //输出当前数及所有数的公共因子1
                    for (j = 2; j < i; j++)  //for循环用于寻找当前数的因子
                    {
                        if (i % j == 0)//如果j是i的因子,进行下个语句块的执行
                        {
                            Console.Write("+" + j);  //输出当前因子
                        }
                    }
                    Console.WriteLine();//输出完一个完数以及所有因子之和的表达式后换行
                }
            }
        }
    }
}