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

  • 相关阅读:
    关于编程
    Python的内建sort方法

    Elgg设置SMTP验证发送邮件教程
    ThinkPHP 和 UCenter接口的冲突
    mac下终端iTerm2配置
    自动化 Amazon EBS 快照生命周期
    AWS Certified Solutions Architect Associate 学习笔记1
    实例存储生命周期 Instance store
    可触发 Lambda 函数的 CloudFront 事件
  • 原文地址:https://www.cnblogs.com/killbit/p/4280275.html
Copyright © 2011-2022 走看看