.net中的带密钥的加密与解密
来源:互联网 发布:怎么用网站做淘宝客 编辑:程序博客网 时间:2024/06/06 07:05
在项目中看到了一个项目在访问一个独立的webservice服务时url里面加了一个加密的条件,防止别人调用webservice,下面是关于怎么样加密与解密的,网上有很多案例,在此收录以后用到了方便寻找。
using System;using System.Collections.Generic;using System.Text;using System.Security.Cryptography;using System.IO;namespace HRO.ComModules.Function{ public class Crypt { #region 解密函数 /// <summary> /// 功能描述: 解密函数 /// </summary> /// <param name="p_ToDecrypt">需要解密的字符串</param> /// <returns>解密后的字符串</returns> public string Decrypt(string p_ToDecrypt) { return DecryptDES(p_ToDecrypt, "nicemytf"); } #endregion #region 加密函数 /// <summary> /// 功能描述: 加密函数 /// </summary> /// <param name="p_ToEncrypt">需要加密的字符串</param> /// <returns>加密后的字符串</returns> public string Encrypt(string p_ToEncrypt) { return EncryptDES(p_ToEncrypt, "nicemytf"); } #endregion /// <summary> /// DES加密字符串 /// </summary> /// <param name="encryptString">待加密的字符串</param> /// <param name="encryptKey">加密密钥,要求为8位</param> /// <returns>加密成功返回加密后的字符串,失败返回源串</returns> private string EncryptDES(string encryptString, string encryptKey) { try { //加密的密钥需要看下DESCryptoServiceProvider中参数的长度,长度必须一样才行 byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIV = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); 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> private string DecryptDES(string decryptString, string decryptKey) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey); byte[] rgbIV = Encoding.UTF8.GetBytes(decryptKey); 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; } } }}
0 0
- .net中的带密钥的加密与解密
- Mcrypt拓展的带密钥PHP加密和解密算法
- RSA分段加密分段解密以及密钥与.Net的转化
- 带密钥的加解密
- .NET中的加密与解密技术
- .Net中的加密解密
- .Net中的加密解密
- .Net中的加密解密
- .Net中的加密解密
- .Net中的加密解密
- Net中的加密解密
- .Net中的加密解密
- .Net中的加密解密
- .Net中的加密解密
- .Net中的加密解密
- JavaScript利用密钥加密与解密
- JavaScript利用密钥加密与解密
- 公钥与密钥核心思想:加密和解密采用不同的密钥
- 有趣的机器学习:最简明入门指南
- 如何在Windows 7平台搭建Android Cocos2d-x3.0开发环境
- 黑马程序员 字符流 BufferedWriter 和 BufferedReader 的个人理解
- iOS6和iOS7代码的适配(2)——status bar
- 漫谈虚函数
- .net中的带密钥的加密与解密
- windows server 2012 AD 域和站点部署系列(三)创建林中第一个域
- 结构体对齐
- 让EditPlus支持SQL高亮提示
- iOS6和iOS7代码的适配(3)——坐标适配
- 进程和线程的区别
- 三个快速且简单的让你的大脑安静下来的方法
- cocos2d-x 3.0 导演,场景,层,以及精灵的介绍
- osgi 环境下 hibernate 4 配置