C#加密解密DES字符串<转>
2015-03-07 17:19
211 查看
using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; using System.IO; namespace Component { public class Security { public Security() { } //默认密钥向量 private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; /**//**//**//// <summary> /// DES加密字符串 /// </summary> /// <param name="encryptString">待加密的字符串</param> /// <param name="encryptKey">加密密钥,要求为8位</param> /// <returns>加密成功返回加密后的字符串,失败返回源串</returns> public static string EncryptDES(string encryptString, string encryptKey) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIV = Keys; byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Convert.ToBase64String(mStream.ToArray()); } 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[] rgbKey = Encoding.UTF8.GetBytes(decryptKey); byte[] rgbIV = Keys; byte[] inputByteArray = Convert.FromBase64String(decryptString); 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; } } } }
转自:http://www.cnblogs.com/yiki/archive/2007/08/28/872373.html
相关文章推荐
- <转载>Java 加密解密之对称加密算法AES
- [原创]DES加密解密工具2.1及其代码——支持字符串及文件加密,支持3重DES
- C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- PYQT5+python3.6+QT编写一个带ui的加密解密小程序<凯撒加密><维吉尼亚加密><仿射加密><培根加密>
- C#对字符串加密解密 DES
- NET实现RSA AES DES 字符串 加密解密以及SHA1 MD5加密
- [导入]对字符串进行SHA1和DES(加密,解密),加密和解密的类
- C++ <文本文件的加密与解密>
- iOS —— base64 <加密解密>
- cocos2d-x 3.x学习笔记<三> 加密解密 xxtea
- Java加密和C#解密=>DES方法
- 使用Des,MD5 加密.解密.字符串.文件
- <转载>JAVA AES DES MD5 加密字符串
- DES加密解密工具2.1及其代码——支持字符串及文件加密,支持3重DES
- 对字符串进行SHA1和DES(加密,解密),加密和解密的类
- [C++]DES加密解密工具2.1及其代码——支持字符串及文件加密,支持3重DES
- DES加密解密工具2.1及其代码——支持字符串及文件加密,支持3重DES
- C#字符串的加密与解密(DES和TripleDES算法的加密解密过程)
- 【加密解密】 文件的加密解密 <含源代码>
- [转]DES加密解密工具2.1及其代码——支持字符串及文件加密,支持3重DES