文档章节

C#的DES加解密

牛牛牛大棚
 牛牛牛大棚
发布于 2016/10/11 09:12
字数 265
阅读 4
收藏 0
        /// <summary>
        /// DES加密字符串
        /// </summary>
        /// <param name="encryptString">待加密的字符串</param>
        /// <param name="encryptKey">加密密钥,要求为8位</param>
        /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
        public static string EncryptDES(string encryptString, string encryptKey)
        {
            try
            {
                byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
                byte[] rgbIV = rgbKey;

                DESCryptoServiceProvider csp = new DESCryptoServiceProvider();
                MemoryStream mStream = new MemoryStream();
                CryptoStream cStream = new CryptoStream(mStream, csp.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 0, inputByteArray.Length);
                cStream.FlushFinalBlock();

                //返回的格式
                StringBuilder sBulider = new StringBuilder();
                byte[] tmp = mStream.ToArray();
                for (int i = 0; i < tmp.Length; i++)
                {
                    sBulider.AppendFormat("{0:X2}", tmp[i]);
                }
                return sBulider.ToString();
            }
            catch
            {
                return encryptString;
            }
        }

        /// <summary>
        /// DES解密字符串
        /// </summary>
        /// <param name="decryptString">待解密的字符串</param>
        /// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
        /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
        public static string DecryptDES(string decryptString, string decryptKey)
        {
            try
            {
                byte[] inputByteArray = new byte[decryptString.Length / 2];
                for(int i = 0; i < decryptString.Length / 2; i++)
                {
                    int num = Convert.ToInt32(decryptString.Substring(i * 2, 2), 16);
                    inputByteArray[i] = (byte)num;
                }

                byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
                byte[] rgbIV = rgbKey;

                DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
                MemoryStream mStream = new MemoryStream();
                CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 0, inputByteArray.Length);
                cStream.FlushFinalBlock();

                return Encoding.UTF8.GetString(mStream.ToArray());
            }
            catch
            {
                return decryptString;
            }
        }

 

© 著作权归作者所有

上一篇: PHP的DES加解密
下一篇: PHP安装
牛牛牛大棚
粉丝 0
博文 11
码字总数 11265
作品 0
苏州
程序员
私信 提问
C#使用DES加解密数据

C#的DES加解密,同时支持.NET与.NET CF 2.0平台,这样就可以把一个封装好的类同时用在PC/WM手机上。C#的DES比其他语言的DES算法多了个IV实现,其实IV可以设置为随意的8位byte即可,注意要加入...

晨曦之光
2012/03/14
389
0
Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密

Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前...

郑州-在路上
2018/04/26
0
0
.net 安卓IOS跨平台des加解密双向的(可以互相加解密)

http://blog.sina.com.cn/s/blog_beda09820102v5fu.html .net 安卓IOS跨平台des加解密双向的(可以互相加解密) #region 跨平台加解密(c# 安卓 IOS) // public static string sKey = "1234......

壹峰
2018/07/25
0
0
C#的DES加密转换成php?

我有C#的des加密代码 如何按照C#的编码格式转换成php C#代码如下: 示例代码(C#版本解密): #region DESDeCode DES加密 ///解密 privatestring DESDeCode(string decryptoContext, string...

demon-lee
2016/03/14
166
0
Asp.NET的DES&AES加密算法(转载)

Asp.Net C#中除了MD5加密之外还经常用到了AES加密、解密与DES加密、解密,本次先介绍DES的加密及解密。注意的是DES的密匙是8位的。 private static readonly String strDesKey = "imaoblog";...

maoxiajun
2011/08/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nproc systemd on CentOS 7

Increasing nproc for processes launched by systemd on CentOS 7 Ask Question I have successfully increased the nofile and nproc value for the local users, but I couldn't find a p......

MtrS
今天
3
0
了解微信小程序下拉刷新功能

小程序提供了这个事件。 onPullDownRefresh() 监听用户下拉刷新事件。 如果要开启下拉刷新功能,要先到json配置: "enablePullDownRefresh":true 配置后下拉有反应了但是没有加载效果,在onP...

oixxan__
今天
2
0
springmvc java对象转json,上传下载(未完)拦截器Interceptor以及源码解析(未完待续)

package com.atguigu.my.controller;import java.util.Collection;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Contr......

architect刘源源
今天
30
0
[日更-2019.5.24、25、26] Android系统中的Binder通信机制分析(一)--servicemanager

声明 其实对于Android系统Binder通信的机制早就有分析的想法,记得去年6、7月份Mr.Deng离职期间约定一起对其进行研究的,但因为我个人问题没能实施这个计划,留下些许遗憾... 最近,刚好在做...

Captain_小馬佩德罗
昨天
24
0
聊聊dubbo的DataStore

序 本文主要研究一下dubbo的DataStore DataStore dubbo-2.7.2/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStore.java @SPI("simple")public interface DataStore { ......

go4it
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部