3492--DES对称加密解密算法—C#编程

关于DES对称加解密算法介绍:

https://mp.csdn.net/console/editor/html/104846925

题目描述

参考相关文献,设计一个DES对称加密算法。并编写一个控制台应用予以验证。密钥设定为:@1234567。
    class Program{ 
        //验证DES加密算法
        static void Main(string[] args){
            Console.WriteLine(Class1.ECP("absg123@&!"));
        }
    }

    public class Class1 {
        //下面ECP方法功能为采用对称加密算法
        //该算法原理请大家百度
        const string KEY_64 = "@1234567";
        const string IV_64 = "@1234567";
        public static string ECP(string data)      {
              //这里编写DES对称加密算法代码
        }
 

输入

一个字符串

输出

加密后的字符串

样例输入

123456

样例输出

czgzz5i20Rw=
using System;
using System.Security.Cryptography;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
using System.IO;

namespace lianxi
{
    class Program
    {
        //验证DES加密算法
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            Console.WriteLine(Class1.ECP(s));
            Console.WriteLine(Class1.DECP(Class1.ECP(s)));
            Console.ReadKey();
        }
    }
    public class Class1
    {
        //下面ECP方法功能为采用对称加密算法
        //该算法原理请大家百度
        const string KEY_64B = "@1234567";
        const string IV_64B = "@1234567";

        public static string ECP(string data)  //加密算法
        {
            try
            {
                if (string.IsNullOrEmpty(data)) return data;
                byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64B);
                byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64B);

                DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
                int i = cryptoProvider.KeySize;
                MemoryStream ms = new MemoryStream();
                CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey,byIV), CryptoStreamMode.Write);
                StreamWriter sw = new StreamWriter(cst);
                sw.Write(data);
                sw.Flush();
                cst.FlushFinalBlock();
                sw.Flush();
                return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static string DECP(string data)  //解密算法
        {
            try
            {
                byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64B);
                byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64B);
                byte[] byEnc = Convert.FromBase64String(data);
                DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
                MemoryStream ms = new MemoryStream(byEnc);
                CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
                StreamReader sr = new StreamReader(cst);
                return sr.ReadToEnd();
            }
            catch (Exception ex)
            {
                string s = ex.Message;
                throw ex;
            }
        }
    }
}



发布了44 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/DreamTrue1101/article/details/104847016
今日推荐