如何用C#实现DES加密解密

2016-02-19 12:22 16 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的如何用C#实现DES加密解密教程,一起来看看吧!超容易上手~

【 tulaoshi.com - 编程语言 】

代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;

namespace Common
...{
    /**//// summary
    /// DESEncrypt加密解密算法。
    /// /summary
    public sealed class DESEncrypt
    ...{
        private DESEncrypt()
        ...{
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }

        private static string key = "zhoufoxcn";

        /**//// summary
        /// 对称加密解密的密钥
        /// /summary
        public static string Key
        ...{
            get
            ...{
                return key;
            }
            set
            ...{
                key = value;
            }
        }

        /**//// summary
        /// DES加密
        /// /summary
        /// param name="encryptString"/param
        /// returns/returns
        public static string DesEncrypt(string encryptString)
        ...{
            byte[] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8));
            byte[] keyIV = keyBytes;
            byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
            DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
            MemoryStream mStream = new MemoryStream();
            CryptoStream cStream = new CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write);
            cStream.Write(inputByteArray, 0, inputByteArray.Length);
            cStream.FlushFinalBlock();
            return Convert.ToBase64String(mStream.ToArray());
        }

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

        /**//// summary
        /// DES解密
        /// /summary
        /// param name="decryptString"/param
        /// returns/returns
        public static string DesDecrypt(string decryptString)
        ...{
            byte[] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8));
            byte[] keyIV = keyBytes;
            byte[] inputByteArray = Convert.FromBase64String(decryptString);
            DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
            MemoryStream mStream = new MemoryStream();
            CryptoStream cStream = new CryptoStream(mStream, provider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write);
            cStream.Write(inputByteArray, 0, inputByteArray.Length);
            cStream.FlushFinalBlock();
            return Encoding.UTF8.GetString(mStream.ToArray());
        }
    }
}

来源:http://www.tulaoshi.com/n/20160219/1600744.html

延伸阅读
#undef debug #define debugdisplay #undef debugdictionary using System; using System.Collections; namespace LZW {  public class cLZW  {   #region Constrcut   public cLZW()   {   }   #endregion      #region Coding   public string ...
标签: Web开发
第一步:把如下代码加入到head区域中 SCRIPT LANGUAGE="JavaScript" !-- Begin function Encrypt(theText) { output = new String; Temp = new Array(); Temp2 = new Array(); TextSize = theText.length; for (i = 0; i TextSize; i++) { rnd = Math.round(Math.random() * 122) + 68; Temp[i] = theText.charCodeAt(i) + rnd; Temp2[i] = r...
电脑朗读(英文)一个很好的触发点,通过它可以实现电子小说阅读、英文听力测试、英文单词学习... 下面的Speech已对MSTTS作了简单封装。 1.安装好MSTTS(如果你有装金山词霸,系统就已经安装了),可以在winnt\speech中打到vtxtauto.tlb文件; 2.用.Net SDK自带的tlbimp工具把vtxtauto.tlb转换成.dll格式: tlbimp vtxta...
小弟最近在编写一个O/RM组件(当然功能还是相当少的)。 大家都应该清楚把实体对象更新到数据库必须经过一系列的转换;特别是SQL语句的生成是比较费资源的,因为中间处里的东西实大是太多了。 在设计的过程中我就想如果一个对象插入数据库后把相应的Command保存在缓存中;下一次同一个类型的对象做这个操作时检测一下缓存如果有就直接拿来用这...
之前发了一篇使用Window API来实现管道技术的文章,后来改用C#来实现相同的效果,发现C#本身方便的进程线程机制使工作变得简单至极,随手记录一下。 首先,我们可以通过设置Process类,获取输出接口,代码如下: Process proc = new Process(); proc .StartInfo.FileName = strScript; proc .StartInfo.WorkingDirectory = strDirectory; pro...

经验教程

67

收藏

87
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部