asp加密字符串
1. ASP.NET中几种加密方法
MD 的全称是Message Digest Algorithm (信息 摘要算法) 在 年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l rivest开发出来 经md md 和md 发展而来 它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一 个任意长度的字节串变换成一定长的大整数) 不管是md md 还是md 它们都需要获得一个随机长度的信息并产生一个 位的信息摘要
加密哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串 加密哈希函数有这样一个属性 在计算上不大可能找到散列为相同的值的两个 不同的输入 也就是说 两组数据的哈希值仅在对应的数据也匹配时才会匹配 数据的少量更改会在哈希值中产生不可预知的大量更改 所以你很难从加密后的文字 中找到蛛丝马迹
SHA 的全称是Secure Hash Algorithm(安全哈希算法)
MD 算法的哈希值大小为 位 而SHA 算法的哈希值大小为 位 两种算法都是不可逆
虽说 年 月 日的美国加州圣巴巴拉的国际密码学会议(Crypto’ )上 来自中国山东大学的王小云教授做了破译MD HAVAL MD 和RIPEMD算法的报告 公布了MD系列算法的破解结果 宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌 引发了密码学界的轩然 *** 但 是我觉得对于我们做普通的软件来说 这个加密安全程度已经足够使用了
我们平常用的最多的无非就是加密用户密码 把加密好的密码存储到数据库中 进行密码比较的时候 把用户输入的密码再进行加密 然后与数据库中的密文 进行比较 至于ASP net类中是如何实现加密算法的 这个我们不需要关心 会用就行了
下面就是ASP NET中几种加密方法 加密算法有两种 也就是上面提到的MD 和SHA 这里我举的例子是以MD 为例 SHA 大致相同 只 是使用的类不一样
MD 相关类
System Security Cryptography MD System Security Cryptography MD CryptoServiceProvider() System Web Security FormsAuthentication (strSource "MD ")SHA 相关类
System Security Cryptography SHA System Security Cryptography SHA CryptoServiceProvider() System Web Security FormsAuthentication (strSource "SHA ")方法如下 (用的vs )
/**//// <summary> /// 方法一:通过使用 new 运算符创建对象 /// </summary> /// <param name=strSource>需要加密的明文</param> /// <returns>返回 位加密结果 该结果取 位加密结果的第 位到 位</returns> public string Get_MD _Method (string strSource) { //new System Security Cryptography MD md = new System Security Cryptography MD CryptoServiceProvider(); //获取密文字节数组 byte[] bytResult = md ComputeHash(System Text Encoding Default GetBytes(strSource)); //转换成字符串 并取 到 位 string strResult = BitConverter ToString(bytResult ); //转换成字符串 位 //string strResult = BitConverter ToString(bytResult); //BitConverter转换出来的字符串会在每个字符中间产生一个分隔符 需要去除掉 strResult = strResult Replace(" " ""); return strResult; } /**//// <summary> /// 方法二:通过调用特定加密算法的抽象类上的 Create 方法 创建实现特定加密算法的对象 /// </summary> /// <param name=strSource>需要加密的明文</param> /// <returns>返回 位加密结果</returns> public string Get_MD _Method (string strSource) { string strResult = ""; //Create System Security Cryptography MD md = System Security Cryptography MD Create(); //注意编码UTF UTF Unicode等的选择 byte[] bytResult = md ComputeHash(System Text Encoding UTF GetBytes(strSource)); //字节类型的数组转换为字符串 for (int i = ; i < bytResult Length; i++) { // 进制转换 strResult = strResult + bytResult[i] ToString("X"); } return strResult; } /**//// <summary> /// 方法三:直接使用生成 /// </summary> /// <param name=strSource>需要加密的明文</param> /// <returns>返回 位加密结果</returns> public string Get_MD _Method (string strSource) { return System Web Security FormsAuthentication (strSource "MD "); } lishixin/Article/program/net/201311/14023
2. 求简洁的ASP可逆加密算法,要求看不出规律。
<%
functionjiami(byvals)'加密
randomize
s=escape(s)
fori=1tolen(s)
k=int(rnd*256)
jiami=jiami&right("0"&hex(asc(mid(s,i,1))xork),2)&right("0"&hex(k),2)
next
endfunction
functionjiemi(byvals)'解密
fori=1tolen(s)step4
jiemi=jiemi&chr(int("&H"&mid(s,i,2))xorint("&H"&mid(s,i+2,2)))
next
jiemi=unescape(jiemi)
endfunction
s="123网络知道abc"
response.write"要加密的字符串:"&s&"<br>"
s=jiami(s)
response.write"加密后的字符串:"&s&"<br>"
s=jiemi(s)
response.write"解密后的字符串:"&s&"<br>"
%>
这个加密程序的妙处在于,同一个字符串每次加密后的字符串都是不相同的,但都能够解密回原来的字符串。
3. ASP.NET 对字符串加密解密 只有小写字母和数字
这是我现在用的。 private static byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; //密钥向量 /// <summary> /// 加密 /// </summary> /// <param name="EncryptString">待加密的字符串</param> /// <param name="EncryptKey">加密密钥</param> /// <returns>加密成功返回加密后的字符串,失败返回源串</returns> public static string Encrypt(string EncryptString, string EncryptKey) { byte[] byKey = null; byKey = System.Text.Encoding.UTF8.GetBytes(EncryptKey.Substring(0, 8)); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = System.Text.Encoding.UTF8.GetBytes(EncryptString); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); return Convert.ToBase64String(ms.ToArray()); } /// <summary> /// 解密 /// </summary> /// <param name="EncryptString">待解密的字符串</param> /// <param name="EncryptKey">解密密钥</param> /// <returns>解密成功返回解密后的字符串,失败返源串</returns> public static string Decrypt(string EncryptString, string EncryptKey) { byte[] byKey = null; byte[] inputByteArray = new Byte[EncryptString.Length]; try { byKey = System.Text.Encoding.UTF8.GetBytes(EncryptKey.Substring(0, 8)); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); inputByteArray = Convert.FromBase64String(EncryptString); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); System.Text.Encoding encoding = new System.Text.UTF8Encoding(); return encoding.GetString(ms.ToArray()); } catch { return ""; } }
4. asp程序加密如何实现
方法一:使用工具加密ASP代码,简单快捷,但没有实际意义,很容易就被反编译了。
方法二:把ASP封装DLL,方法不复杂,但需要你有足够权限,虚拟主机是无法注册DLL的,除非你是服务器或者VPS,如果你是卖源码的,程序安装也需要VPS或服务器的环境才行。
方法三:重要代码远程执行,就是ASP里面的XMLHTTP,把核心部分全部放到你自己的空间里,卖给客户的代码都是远程执行你空间里的代码,然后在吧执行结果反馈回去。效率比较低,但适合访问量低的应用,例如人事管理、直销系统的奖金计算等等。
基本就上面这三种方法,我通通都用过,主要看程序价值了,贵的源码都采用第二种方法,对方如果连个VPS都买不起,估计也不可能买得起我的代码。 还有就是比较便宜的,代码不太复杂,就是不希望客户倒卖,主要是直销系统。都是手打,一定要选我哦。
附2014ASP最新视频教程http://www.uuucool.com/down/html/3692.html
5. 在asp页面中如何对url问号后面的字符串进行加密
伪静态处理的
用:Request.ServerVariables("QUERY_STRING")获取?后面的参数
然后进行过滤就拿到值了
news_list.asp?1
id=Request.ServerVariables("QUERY_STRING")
那这个ID值就是1了如果是
news_list.asp?1.html
id=replace(Request.ServerVariables("QUERY_STRING"),".html","")
结果是一样的
6. 求asp参数加密方法
可以 使用ScriptEncoder加密asp文件.ScriptEncoder的特点是:它只加密页面中嵌入的脚本代码,其他部分,
如HTML的TAG仍然保持原样不变。处理后的文件中被加密过的部分为只读内容,对加密部分的任何修改都将导致整个加密后的文件不能使用。ScriptEncoder加密过的ASP文件还将使ScriptDebugger之类的脚本调试工具失效。
ScriptEncoder是可以对ClientSideScript加密,也可以对ServerSideScript加密。使用简介ScriptEncoder是个命令行工具,执行文件为SCRENC.EXE。它的操作非常简单:SCRENC[/s][/f][/xl][/ldefLanguage][/edefExtension]inputfileoutputfile/s可选。让ScriptEncoder“安静”的工作,即执行过程没有屏幕输出。
(我使用的感觉忽略它,同样没有屏幕输出。没什么用,懒得理了。)/f可选。指定输出文件是否覆盖同名输入文件。忽略,将不执行覆盖。/xl可选。是否在.asp文件的顶部添加@Language指令。忽略,将添加。/ldefLanguage可选。指定ScriptEncoder加密中选择的缺省脚本语言。文件中不包含这种脚本语言特性的脚本将被ScriptEncoder忽略。对于HTML和脚本文件来说,JScript为内置缺省脚本语言。对于ASP文件,VBScript为缺省脚本语言。同时对于扩展名为.vbs或.js的文件ScriptEncoder有自适应能力。/edefExtension可选。指定待加密文件的文件扩展名。缺省状态下,ScriptEncoder能识别asa,asp,cdx,htm,html,js,sct和vbs文件。ScriptEncoder下载地址:/msdownload/vbscript/scripting.asp?msid=32186&plat=x86&lang=Chinese/Simplified
7. Asp 对字符串 简单 加密解密 高效算法
'试试这个函数如何
<%
Function Enc(s)
str=""
key=""
dim l(130)
for i=1 to 130
if i=32 then l(i)=" "
li=instr(str,chr(i))
if li>0 then l(i)=mid(key,li,1)
next
for i=1 to len(s)
e=e&l(asc(mid(s,i,1)))
next
enc=e
End Function
%>
<%=Enc("hello world")%>
生成随机Key的方法
<%
Function GetKey()
randomize
key=""
for n=1 to 1000
i=int(rnd*62)+1
j=int(rnd*62)+1
si=mid(key,i,1)
sj=mid(key,j,1)
key=replace(key,si,"-")
key=replace(key,sj,si)
key=replace(key,"-",sj)
next
GetKey=key
End Function
%>