zoukankan      html  css  js  c++  java
  • C# DES加密解密

    using System;
    using System.IO;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Security.Cryptography;
    
    namespace Des
    {
        class Program
        {
    
            public static string Encode(string data, string Key) //加密
            {
                byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(Key);
                byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(Key);
                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);
            }
    
            public static string Decode(string data, string Key) //解密
            {
                byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(Key);
                byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(Key);
                byte[] byEnc;
                try
                {
                    byEnc = Convert.FromBase64String(data);
                }
                catch
                {
                    return null;
                }
                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();
            }
            static void Main(string[] args)
            {
                string ecode;
                string dcode;
                ecode = Encode("Hello word,this is a testing", "qwertyui");
                Console.Write(ecode);
                Console.Write("
    ");
                dcode = Decode(ecode, "qwertyui");
                Console.Write(dcode);
                Console.Write("
    ");
            }
        }
    }


    输出:

    E:C#DesDesinDebug>Des.exe
    Zz8EouQdHsvcw4oB4IdNV5QFIyyLbYd2PCX1k4kvod0=
    Hello word,this is a testing

  • 相关阅读:
    Linux统计文件夹下所有文件的数量
    Linux查看文件最后几行的命令
    linux export将PATH环境变量误删了的解决办法
    laravel提示Mcrypt PHP extension required
    php(cli模式)执行文件传递参数
    shell判断文件是否存在,不存在则创建
    php获取Linux网卡信息
    使用iptraf,ifstat查看网络流量
    作用域
    头文件,库文件,重复包含
  • 原文地址:https://www.cnblogs.com/killbit/p/4280275.html
Copyright © 2011-2022 走看看