url加密解密的一个cs类
网上很多人在问怎么实现Web系统URL传输(表单提交)参数加密。例如:要进行一个用户帐号编辑,要传递用户的ID,URL如下:http://localhost/mysystem/editAccounts.aspx?ID=2
但又不想让别人知道这个用户的ID为2,恶意的使用者可能还会将2修改,改为别的用户ID。
using System; using System.Security.Cryptography; using System.IO; using System.Text; namespace EIP.Framework ...{ public class Security ...{ string _QueryStringKey = "abcdefgh"; //URL传输参数加密Key string _PassWordKey = "hgfedcba"; //PassWord加密Key public Security() ...{ } public string EncryptQueryString(string QueryString) ...{ return Encrypt(QueryString,_QueryStringKey); } public string DecryptQueryString(string QueryString) ...{ return Decrypt(QueryString,_QueryStringKey); } public string EncryptPassWord(string PassWord) ...{ return Encrypt(PassWord,_PassWordKey); } public string DecryptPassWord(string PassWord) ...{ return Decrypt(PassWord,_PassWordKey); } /**//// /// DEC 加密过程 /// /// /// ///public string Encrypt(string pToEncrypt,string sKey) ...{ DESCryptoServiceProvider des = new DESCryptoServiceProvider(); //把字符串放到byte数组中 byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt); //byte[] inputByteArray=Encoding.Unicode.GetBytes(pToEncrypt); des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); //建立加密对象的密钥和偏移量 des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); //原文使用ASCIIEncoding.ASCII方法的GetBytes方法 MemoryStream ms = new MemoryStream(); //使得输入密码必须输入英文文本 CryptoStream cs = new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); foreach(byte b in ms.ToArray()) ...{ ret.AppendFormat("{0:X2}", b); } ret.ToString(); return ret.ToString(); } /**//// /// DEC 解密过程 /// /// /// ///public string Decrypt(string pToDecrypt, string sKey) ...{ DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = new byte[pToDecrypt.Length / 2]; for(int x = 0; x < pToDecrypt.Length / 2; x++) ...{ int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16)); inputByteArray[x] = (byte)i; } des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); //建立加密对象的密钥和偏移量,此值重要,不能修改 des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(),CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); //建立StringBuild对象,CreateDecrypt使用的是流对象,必须把解密后的文本变成流对象 return System.Text.Encoding.Default.GetString(ms.ToArray()); } /**//// /// 检查己加密的字符串是否与原文相同 /// /// /// /// ///public bool ValidateString(string EnString, string FoString, int Mode) ...{ switch (Mode) ...{ default: case 1: if (Decrypt(EnString,_QueryStringKey) == FoString.ToString()) ...{ return true; } else ...{ return false; } case 2: if (Decrypt(EnString,_PassWordKey) == FoString.ToString()) ...{ return true; } else ...{ return false; } } } } }
转载于:https://www.cnblogs.com/KohnKong/articles/2216655.html
url加密解密的一个cs类相关推荐
- 各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)
普通hash函数如md5.sha1.base64等都是不可逆函数.虽然我们利用php可以利用这些函数写出可逆函数来.但是跨语言时这类可逆函数非常难搞定.所以这时尽量使用AES DES RC4 Rabb ...
- url html 加密 php,php实现URL加密解密
这篇文章主要介绍了php实现URL加密解密的方法,结合实例形式分析了php针对URL字符串进行加密解密操作的相关技巧,需要的朋友可以参考下 具体如下: 无标题文档 function query_enc ...
- 【PHP】URL加密解密(可逆)
URL加密解密(可逆) 加密:urlencode urlencode ( string $str ) : string 此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下 ...
- php常用url加密方法,php实现URL加密解密的方法
本文实例讲述了php实现URL加密解密的方法.分享给大家供大家参考,具体如下: 无标题文档 function query_encode($sQuery) {//加密链接 if(strlen($sQue ...
- java url加密解密,java URL 编码解码,该如何解决
java URL 编码解码 我写了两个接口 一个是对字符串加密 的,一个是解密的 .加密的可以通过调用接口生成加密字符串如下: Oc0PEwKrLzHqT25hYLhWP5wlk5HROPJoWC3 ...
- PHP中的URL加密解密加密
1)URL加密代码--主要是urlencode()函数 <?php $url1=urlencode('学习PHP '); echo "index.php?id=".$url1 ...
- c#进行url加密解密与jquery前端加密解密
前言 当我们程序发布于服务器上会遇到前端报错.因为有特殊原因导致. 此时需要对传输的数据,进行加密,后台进行解密处理 C#进行url加密与解密 HttpUtility.UrlEncode(val); ...
- java url加密解密,Java加密解密 -Jasypt
1. download url http://www.jasypt.org/download.html 2. 依赖 jar jasypt-1.9.0.jar 3. 加密 // 默认加密/解密算法是 P ...
- 在Java中DES加密/解密的实现[工具类]
使用前需导入Crypto包: <dependency><groupId>org.springframework.security</groupId><arti ...
最新文章
- ef mysql 事务_事务 - EF Core | Microsoft Docs
- egret 发布android原生项目(一)打包apk
- 云拨测助力节卡机器人 全面优化海外网站性能
- vue 封装dialog_自己封装dialog组件
- kotlin之重载运算符(十一)
- 如何把一个PDF文件内的部分页码对应的内容导出成一个新的PDF文件
- Linux C++线程池实例
- linux获取连续数组下标值,shell 数组,双层循环打印变量
- unix文件描述符——socket
- 面试题 10.09. 排序矩阵查找
- 机器学习 —— 概率图模型(CPD)
- OpenCore引导配置说明第十三版-基于OpenCore-0.6.6正式版
- BZOJ4199: [Noi2015]品酒大会
- stm32f103c8t9控制TFT显示屏
- 刷爆朋友圈,码农月薪七万可以落户北京啦
- 编译原理 --- 语法分析概念,自上而下分析面临的问题以及如何消除左递归问题
- 使用Nodejs搭建一个简易的留言簿(完结)
- android 音频输出手动切换到听筒播放,Android-通过听筒播放音频
- 判断IE浏览器的文档模式以及浏览器模式
- 数据分析师招聘岗位分析