当前位置:首页 » 密码管理 » asp参数加密

asp参数加密

发布时间: 2024-09-28 01:44:32

① asp加密概述

加密,是通过特定算法将原始数据转变为无法直接理解的形式,以确保未经授权的用户即使获取到加密信息,由于缺乏解密钥匙,也无法获取信息内容。其安全性并非源于加密算法的隐秘性,而是关键在于密钥的绝对保密。RSA和AES等常见的公开加密算法,尽管算法本身广为人知,但只要没有密钥,加密信息依旧坚不可摧。单纯隐藏加密算法并不能提供足够的保护,因为它们已面临长期的黑客攻击和业界测试,相比之下,使用密钥保护的加密技术更为安全。


在密码学领域,加密是将明文信息转化为不可读的形式,仅在拥有特定信息的情况下才能解读。尽管加密作为保密手段历史悠久,但直到20世纪70年代,强加密才开始在公共领域广泛应用,如今已成为保护互联网电子商务、手机网络、银行系统等重要系统的标准手段,确保数据安全。


除了加密,数据完整性和信息验证也是通信安全的重要组成部分,例如信息验证码(MAC)和数字签名。同时,为了防止流量分析,其他技术手段也是必要的。在软件版权保护中,加密和软件编码隐匿(Code Obfuscation)也被用于对抗反向工程和软件盗版,以及数字版权管理(DRM)等。


古代的加密手段各异,如中国使用淀粉水写字再用碘水显影,而国外如伯罗奔尼撒战争中的腰带密码,是通过预先约定的解读规则,将情报编码在看似随机的字母中,只有接收者按照同样方式解开才能解读。这种密码通信方式,是现代密码电报的早期灵感来源。斯巴达军队通过解读这种密码,扭转了战局,展示了密码在情报传递中的重要作用。


(1)asp参数加密扩展阅读

为了保护asp源码,对asp源码进行处理使他人无法查看和修改asp源码就需要进行asp加密。

② 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

③ asp加密的加密方式

它的基本原理是,需要有一个需要加密的明文和一个随机生成的解密钥匙文件。然后使用这两个文件组合起来生成密文。
我们首先从密钥文件中得到密钥值,然后从这段密钥中截取和我们需要加密的明文同样长度的密钥。然后使用一个简单的异或操作将明文和密钥进行运算,那么得到的结果就是加密后的密文了。过程很简单的。由于是使用了异或操作,所以解密将非常简单,只要使用同样的密钥对密文再次进行异或操作就能够解密了。在上面介绍的基础上,你可以少加改动,就可以使用同样的方法加密一个文件。唯一需要注意的是,对于一个二进制文件,你需要做一些完整性检查以保证转换回来的字符不要越界。现在你需要做的就是把密钥保存在服务器上的一个安全的地方。
Vernam密码是由Gilbert Vernam (他是AT&T的工程师)在1918年发明的。这是一种使用异或方法进行加密解密的方法。 主要功能
彻底加密源代码,可达到彻底保护知识产权的目的,加密效果优于非编译型的脚本加密工具。非编译型的加密工具要在运行时在内存中还原脚本执行,编译型代码不可还原,直接二进制的执行方式。
产品特点
1.支持各种ASP服务器脚本默认语言。
2.能够完全正确识别后缀名为ASP的伪ASP文件。
3.不论多么复杂的语法结构,都能正确加密并解析。
4.完美处理多种特殊ASP语法在DLL中异常情况...
系统要求
WindowsNT4.0 + IIS
WindowsXP + IIS
Windows 7 + IIS
Windows2000 + IIS
Windows2003 + IIS
Windows2008 + IIS Script Encoder的特点是:
它只加密页面中嵌入的脚本代码,其他部分,如HTML的TAG仍然保持原样不变。处理后的文件中被加密过的部分为只读内容,对加密部分的任何修改都将导致整个加密后的文件不能使用。Script Encoder加密过的ASP文件还将使Script Debugger之类的脚本调试工具失效。
Script Encoder是可以对Client Side Script加密,也可以对Server Side Script加密。
二、使用简介
Script Encoder是个命令行工具,执行文件为SCRENC.EXE。它的操作非常简单:
SCRENC [/s] [/f] [/xl] [/l defLanguage ] [/e defExtension] inputfile outputfile
/s 可选。让Script Encoder“安静”的工作,即执行过程没有屏幕输出。
/f 可选。指定输出文件是否覆盖同名输入文件。忽略,将不执行覆盖。
/e defExtension 可选。指定待加密文件的文件扩展名。 ASP加密解密软件(Asp EnCoder):国人自己编写的软件,持MicroSoft Script Encoder加密解密,移位、逆位加密解密算法,可保护我们辛辛苦苦编写的ASP代码,也可以躲避杀毒软件的查杀。
AspToDll风火轮:能够将ASP代码封装成DLL,利用DLL无法还原的特性确保ASP代码加密之后不可解,保护ASP开发者的知识产权不受侵害。
ASP加密锁(AspApp):将IIS + ASP(Active Server Page)实现的网站进行打包、加密、压缩,打包后的应用仍然可以在IIS下使用,但是他人已经无法直接阅读ASP脚本内容,彻底保护您的辛苦劳动成果和知识产权,您可以用来制作WEB系统的试用版本、功能限制版本和发行版本等。

④ asp.net中config的connectionstrings加密怎么做

加密网站中的配置信息,我们不需要写任何代码,也不需要修改任何代码,只需要使用 aspnet_regiis 工具修改配置文件即可.
比如我们有下面一个配置文件需要加密:
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=localhost;
Integrated Security=SSPI;Initial Catalog=Northwind;" />
</connectionStrings>
</configuration>

假设这个配置文件在 MyApplication 目录下。
加密命令
aspnet_regiis -pe "connectionStrings" -app "/MyApplication"

aspnet_regiis 命令在你安装的 .net Framework 目录下, 默认在:
C:\WINDOWS\Microsoft.Net\Framework\v2.0.*

加密后的效果:
<configuration>
<connectionStrings configProtectionProvider="">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData> <CipherValue>0RU0XfRexc6aLFYZM+f+IWZVINqTZAAunysoVPv0dliPM72D
34MJ/gX7pzvhSJNqCLiXeyjsayse
12oAuF4rlIEraa//0QB
=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData> <CipherValue>
KmD2h7hJo2BeTIjyIOAq/2J1saLDJm
+d
zA8qEF//
ZJrjYcHIk3I27oh/XuxtSQ0VNOl
gfSsM/=
</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
</configuration>

注意:为了避免一行太长,我这里把加密后信息加了几个回车符。

ASP.NET 在处理 Web.config 文件时会自动对该文件的内容进行解密。因此,
不需要任何附加步骤即可对已加密的配置设置进行解密,供其他 ASP.NET 功能使用或用于访问代码中的值。

如果你想修改这些配置信息,就需要解密这个文件,然后再加密。解密用 aspnet_regiis.exe 命令的 -pd 选项。
参考命令如下:

aspnet_regiis -pd "connectionStrings" -app "/MyApplication"

上面给的范例是 针对 IIS 的站点,如果你的站点是使用VS2005 的 ASP.net Development Server
则需要用 -pef 参数,当然 iis 站点也可以这么用

aspnet_regiis.exe -pef "connectionStrings" "D:\My2005Codes\WebTestCode\TestWEBSite"

说明:
-pef 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。
对应的这个解密则是
-pdf 参数 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行解密。

应该是可以用的啊,你看开始菜单里面的vs2008下面有一个vs2008工具的目录,在他下面有一个vs2008命令行,用这个就可以。加密后可以直接读取程序运行时自动解密的,放心。不影响不需要运行时写另外代码解密

⑤ 用ASP分别编写一个实现加密和解密功能的页面

是不是MD5加密?如果是MD5加密,加密后是不可能解密的。而用ASP加密的话,一旦别人知道了算法的话,基本上就没有加密型可言了
下面是ASP加密

Function.asp
<%
Rem =================================================================
Rem = 函数文件:Function.asp
Rem = 测试文件:TestEncrypt.asp,Encryptpass.asp
Rem = 说明:Encrypt_PRO加密函数,Decrypt_PRO解密函数
Rem = 代码算法需要重写,可能知道的人多了就不太安全了。
=================================================================
Public Const sDefaultWHEEL1 = "ABCDEFGHIJKLMNOPQRSTVUWXYZ_1234567890qwertyuiopasd!@#$%^&*(),. ~`-=\?/’""fghjklzxcvbnm<>;"
Public Const sDefaultWHEEL2 = "IWEHJKTLZVOPFG_ ~`-=\?/’""!@#$%^&*(),.vbnm<>;tyuiopasd"
Function Encrypt_PRO(sINPUT , sPASSWORD )
Dim sWHEEL1, sWHEEL2
Dim k, c, i
Dim sRESULT
sWHEEL1 = sDefaultWHEEL1: sWHEEL2 = sDefaultWHEEL2
ScrambleWheels sWHEEL1, sWHEEL2, sPASSWORD
sRESULT = ""
For i = 1 To Len(sINPUT)
c = Mid(sINPUT, i, 1)
k = InStr(1, sWHEEL1, c)
If k > 0 Then
sRESULT = sRESULT & Mid(sWHEEL2, k, 1)
Else
sRESULT = sRESULT & Addpass(c,sPASSWORD)
End If
sWHEEL1 = LeftShift(sWHEEL1): sWHEEL2 = RightShift(sWHEEL2)
Next
Encrypt_PRO = sRESULT
End Function
Function Decrypt_PRO(sINPUT , sPASSWORD )
Dim sWHEEL1, sWHEEL2
Dim k, i, c
Dim sRESULT
sWHEEL1 = sDefaultWHEEL1: sWHEEL2 = sDefaultWHEEL2
ScrambleWheels sWHEEL1, sWHEEL2, sPASSWORD
sRESULT = ""
For i = 1 To Len(sINPUT)
c = Mid(sINPUT, i, 1)
k = InStr(1, sWHEEL2, c, vbBinaryCompare)
If k > 0 Then
sRESULT = sRESULT & Mid(sWHEEL1, k, 1)
Else
sRESULT = sRESULT & Addpass(c,sPASSWORD)
End If
sWHEEL1 = LeftShift(sWHEEL1): sWHEEL2 = RightShift(sWHEEL2)
Next
Decrypt_PRO = sRESULT
End Function
Function LeftShift(s )
If Len(s) > 0 Then LeftShift = Mid(s, 2, Len(s) - 1) & Mid(s, 1, 1)
End Function
Function RightShift(s )
If Len(s) > 0 Then RightShift = Mid(s, Len(s), 1) & Mid(s, 1, Len(s) - 1)
End Function
Sub ScrambleWheels(ByRef sW1 , ByRef sW2 , sPASSWORD )
Dim i ,k
For i = 1 To Len(sPASSWORD)
For k = 1 To Asc(Mid(sPASSWORD, i, 1)) * i
sW1 = LeftShift(sW1): sW2 = RightShift(sW2)
Next
Next
End Sub
Function Addpass(tStr,tPass)
Select Case tStr
Case Chr(13)
Addpass = tStr
Case Chr(10)
Addpass = tStr
Case Chr(13)+Chr(10)
Addpass = tStr
Case Chr(9)
Addpass = tStr
Case Else
Addpass = Chr((Asc(tPass) Xor Len(tPass)) Xor Asc(tStr))
End Select
End Function
Function ReadFile(FileName)
Dim fso, f
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(Server.MapPath(FileName), ForReading, True)
ReadFile = f.ReadAll
f.Close
End Function
Sub WriteFile(FileName,Str)
Dim fso, f
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(Server.MapPath(FileName), ForWriting, True)
f.Write Str
f.Close
End Sub
%>

--------------------------加密代码的使用方法-----------------------
从文件index_buk.Htm中读加密后写到index.htm文件中然后解密并显示
也是所谓的Asp代码与HTML代码分离。
Index_buk.htm代码为:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test</title>
<link href="css/css.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style1 {
color: #990000;
font-weight: bold;
}
-->
</style>
<body>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<table width="500" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="cccccc">
<tr align="center" bgcolor="#efefef">
<td colspan="2"><span class="style1">系统发生错误!</span></td>
</tr>
<tr bgcolor="ffffff">
<td colspan="2">{$MsgCon$}</td>
</tr>
<tr bgcolor="ffffff">
<td colspan="2" align="center"><< <a href="javascript:history.go(-1);">返回重新操作</a> >></td>
</tr>
</table>
<p align="center"> </p>
</body>
</html>

——————————————ASP代码调用----------------------
<!--#include file="Function.asp" -->
<%
Rem =================================================================
Rem = 函数文件:Function.asp
Rem = 测试文件:TestEncrypt.asp,Encryptpass.asp
Rem = 说明:Encrypt_PRO加密函数,Decrypt_PRO解密函数
Rem = 代码算法需要重写,可能知道的人多了就不太安全了。
Rem =================================================================
Str = ReadFile("index_buk.Htm")
Pass = "cexo"
Encrypt_Str = Encrypt_PRO(Str,Pass)
Decrypt_Str = Decrypt_PRO(Encrypt_Str,Pass)
Response.Write Encrypt_Str
WriteFile "Index.htm",Encrypt_Str
Response.Write Decrypt_Str
Str2 = ReadFile("index.Htm")
Decrypt_Str = Decrypt_PRO(Str2,Pass)
Str3 = "<li>1111111111111111111111111111</li><br>
<li>1111111111111111111111111111</li><br>
<li>22222222222222222222222222222</li><br>
<li>33333333333333333333333333</li><br>"
Msg = Replace(Decrypt_Str,"{$MsgCon$}",Str3)
Response.Write Msg
%>

--------------------------加密数据的使用方法-----------------------
<%
Rem =================================================================
Rem = 函数文件:Function.asp
Rem = 测试文件:TestEncrypt.asp,Encryptpass.asp
Rem = 说明:Encrypt_PRO加密函数,Decrypt_PRO解密函数
Rem = 适用:对数据的加密,或对代码的加密,可加密中文/英文等。
Rem =================================================================
%>
<!--#include file="Function.asp" -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>加密解密实例</title>
</head>
<body>
<%
Pass = Request("txtpass")
If Pass = Null Then Pass = ""
%>
<form name="form1" method="post" action="TestEncrypt.asp">
请输入要加密的文本:<br>
<textarea name="txt1" cols="80" rows="10"><%=server.HTMLEncode(Decrypt_PRO(Request("txt2"),Pass))%></textarea>
<br>
求得解密文本为: 密码为:
<input name="txtpass" type="text" id="txtpass" value="<%=Pass%>">
<br>
<textarea name="txt2" cols="80" rows="10"><%=Encrypt_PRO(Request("txt1"),Pass)%></textarea>
<br><input type="submit" name="Submit" value="加密">
<input type="submit" name="Submit2" value="解密">
</form>
</body>
</html>

热点内容
直男Qq密码一般会设成什么 发布:2024-11-24 10:28:00 浏览:198
苹果怎么传照片蓝牙到安卓 发布:2024-11-24 10:21:04 浏览:856
比亚迪秦值得买哪个配置 发布:2024-11-24 10:20:23 浏览:73
河北智慧网关服务器云服务器 发布:2024-11-24 10:20:22 浏览:761
linux启动服务命令 发布:2024-11-24 10:15:25 浏览:703
住宅电子密码如何修改 发布:2024-11-24 10:09:48 浏览:358
ipad相册建立子文件夹 发布:2024-11-24 10:09:00 浏览:587
qq密码是怎么被盗的 发布:2024-11-24 10:00:18 浏览:906
压缩类型的 发布:2024-11-24 09:58:53 浏览:264
访问国外报告 发布:2024-11-24 09:55:09 浏览:740