zoukankan      html  css  js  c++  java
  • 问题 A: DES对称加密算法

    题目描述

    参考相关文献,设计一个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.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace DES对称加密算法
    {
        using System;
        using System.Security.Cryptography;
        using System.Text;
        using System.IO;
    
        namespace Common
        {
            class Program
            {
                //验证DES加密算法
                static void Main(string[] args)
                {
                    string input = Console.ReadLine();
                    Console.WriteLine(Class1.strEncryptDES(input, "@1234567"));
                    Console.ReadKey();
                }
            }
    
            public class Class1
            {
                public static string strEncryptDES(string encryptString, string encryptKey)
                {
                    try
                    {
                        byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
                        byte[] rgbIV = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
                        byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                        DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
                        MemoryStream mStream = new MemoryStream();
                        CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                        cStream.Write(inputByteArray, 0, inputByteArray.Length);
                        cStream.FlushFinalBlock();
                        return Convert.ToBase64String(mStream.ToArray());
                    }
                    catch
                    {
                        return encryptString;
                    }
                }
    
            }
        }
    
    }
    

      

  • 相关阅读:
    C++基础-函数的覆盖和函数重载
    C++基础-public(公有属性),protected(保护属性),private(私有属性)
    C++基础-父类和子类的构造和析构的顺序
    C++基础-类的(有参数)继承
    C++基础-类的(无参数)继承
    C程序之包含头文件
    时间复杂度详细分析
    "分辨率"到底是个什么概念?它和DPI之间是什么关系?
    每天一个Qt类之QWidget
    line1: 1: Syntax error: word unexpected (expecting ")")
  • 原文地址:https://www.cnblogs.com/mjn1/p/12507850.html
Copyright © 2011-2022 走看看