C#DES加密解密

小编 2026-07-03 阅读:1367 评论:0
    关于DES加密解密由于项目中用到了,主要用在了对登录的用户名进行加密解密。一个程序某些关...

    关于DES加密解密由于项目中用到了,主要用在了对登录的用户名进行加密解密。一个程序某些关键信息肯定是要有安全性要求的,这个时候其实就需要加密和解密的过程,保障起安全性。


   DES,全称Data Encryption Standard,是一种对称加密算法。由于其安全性比较高(有限时间内,没有一种加密方法可以说是100%安全),很可能是最广泛的密钥系统(我们公司也在用,估计你们也有在用....),唯一一种方法可以破解该算法,那就是穷举法。


  加密和解密本身是一门很复杂的学科,本文浅操,我就不去探究起加密的过程和原理。如果要深究的话,肯定是要花写精力的,写这篇文章只有两个方法,一个是加密,一个是解密的。比较简洁,送给小白。引用的命名空间是using System.Security.Cryptography,用到了一下类

DESCryptoServiceProvider:定义访问数据加密标准,算法的加密服务提供程序 (CSP) 版本的包装对象

MemoryStream:内存流

CryptoStream:加密数据流的转换


des加密解密的过程主要有四个参数参与其中:明文、密钥、向量、加密结果。他们之间的关系很好理解,加密过程是这样的,加密结果=明文+密钥+向量,反之也是一样的。值得注意的是密钥和向量字符串长度必须为8.

国际惯例上图:

C#DES加密解密

C#DES加密方法:

        /// <summary>        /// C# DES解密方法        /// </summary>        /// <param name="encryptedValue">待解密的字符串</param>        /// <param name="key">密钥</param>        /// <param name="iv">向量</param>        /// <returns>解密后的字符串</returns>        public static string DESDecrypt(string encryptedValue, string key, string iv)        {            using (DESCryptoServiceProvider sa =                new DESCryptoServiceProvider                { Key = Encoding.UTF8.GetBytes(key), IV = Encoding.UTF8.GetBytes(iv) })            {                using (ICryptoTransform ct = sa.CreateDecryptor())                {                    byte[] byt = Convert.FromBase64String(encryptedValue);                    using (var ms = new MemoryStream())                    {                        using (var cs = new CryptoStream(ms, ct, CryptoStreamMode.Write))                        {                            cs.Write(byt, 0, byt.Length);                            cs.FlushFinalBlock();                        }                        return Encoding.UTF8.GetString(ms.ToArray());                    }                }            }        }

C#DES解密方法:

        /// <summary>        /// C# DES加密方法        /// </summary>        /// <param name="encryptedValue">要加密的字符串</param>        /// <param name="key">密钥</param>        /// <param name="iv">向量</param>        /// <returns>加密后的字符串</returns>        public static string DESEncrypt( string originalValue, string key, string iv)        {            using (DESCryptoServiceProvider sa                = new DESCryptoServiceProvider { Key = Encoding.UTF8.GetBytes(key), IV =Encoding.UTF8.GetBytes(iv)})            {                using (ICryptoTransform ct = sa.CreateEncryptor())                {                    byte[] by = Encoding.UTF8.GetBytes(originalValue);                    using (var ms = new MemoryStream())                    {                        using (var cs = new CryptoStream(ms, ct,                                                         CryptoStreamMode.Write))                        {                            cs.Write(by, 0, by.Length);                            cs.FlushFinalBlock();                        }                        return Convert.ToBase64String(ms.ToArray());                    }                }            }        }

总结:des加密只是加密算法中的一种,这篇文章就当是抛砖引玉,如有不足的地方,希望提出宝贵的意见。对于其他的加密算法日后也要探索一下。

作者:张林

标题:C#DES加密解密:http://blog.csdn.net/kebi007/article/details/70158945

转载随意注明出处


版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表