asp中文加密
‘壹’ 用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>
‘贰’ asp怎么加密解密中文和数字
这个其实很简单,就看你要求加密的安全机制高与不高。
如果高,你可以网络一下md5加密方法。
如果要求不是很高,你自己可以写一个算法。
例如:你要对 a 进行加密,现在我举一个a为数字的例子
那么你只需要这样做。
dim a,b
b=a+1-2*3/4
其中的运算符号可以自己写,当中的数字,也可以自己拟定。
得出来的b 就是a加密后的结果。再把b存起来。
解密,你只需要反推回去就行。
不过,这样的加密只适用于简单。场合,很容易被破解
所以建议还是用md5加密。
去下载一个md5加密算法的源代码,然后用include调用他你下载的源代码页面。
b=md5(a)
一般情况下,直接按以上写法即可。
‘叁’ 在asp和.net中中文经过md5加密的值如何处理让两个加密后值相同
在asp和asp.net中md5 Hash英文结果相同,但hash中文时会出现结果不同的情况。
这是由于asp默认加密是按GB2312,而asp.net默认是按UTF-8,这样两者的结果就不同了。
在asp.net中可以很方便的修改代码采用GB2312计算MD5,在asp中可以采用修改asp文件编码的方式来实现utf-8 md5。转换asp文件编码方式工具很多,ultraedit或convertZ都可以方便转换。
‘肆’ 满分速求:ASP,PHP文件加密
从微软免费下载到sce10chs.exe 直接运行即可完成安装过程。安装完毕后,将生成screnc.exe文件,这是一个运行在 DOS PROMAPT的命令工具。运行screnc - l vbscript source.asp destination.asp 生成包含密文 ASP脚本的新文件destination.asp。用记事本打开看凡是""之内的,不管是否注解,都变成不可阅读的密文了,但无法加密中文。
‘伍’ 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简单文字加密
<%
Function AscDecrypt(AscDecode)
For iDe=1 To Len(AscDecode)
DeTexts = DeTexts & Asc(Mid(AscDecode,iDe,2)) & "a"
Next
DeTexts = Replace(DeTexts,"-","u")
AscDecrypt = Left(DeTexts,Len(DeTexts)-1)
End Function
Function AscEncrypt(AscEncode)
AscEncode = Replace(AscEncode,"u","-")
EncodeArr = Split(AscEncode,"a")
For iEn=0 To UBound(EncodeArr)
ChrAscNum = EncodeArr(iEn)
If IsNumeric(ChrAscNum) Then
EnTexts = EnTexts & Chr(ChrAscNum)
End If
Next
AscEncrypt = EnTexts
End Function
%>
<%=AscDecrypt("测试")%>
<%=AscEncrypt("u20236au18732au20271au23617")%>
原理:ASP下的Asc函数读取字符的Ascii值
‘柒’ asp程序加密了 怎么解决
用组件法加密的asp程序是无法解密的,而screnc加密过的程序则可以解密,方法是:使用解密软件(ZWDECODE.EXE)。
ZWDECODE.EXE(下载地址
http://www.mydown.com/softdown/45/45183.html
)可以对MS
Script
Encode加密的ASP文件进行解密,还原出源代码。
(1)解密方法
单击“开始”/程序/附件/命令提示符,在MS-DOS
命令行中输入以下命令,即可恢复原代码:
ZWDECODE
<已加密asp文件名>
其中<已加密asp文件名>必需输入,该文件名可带目录路径;也必需输入,这是要生成的输出文件名,也可以带路径信息。
(2)举例
例如F:\22\lacl.asp曾被screnc加密处理过,现在要恢复其中的源代码,你可以在MS-DOS中输入以下命令:
ZWDECODE
F:\22\lacl.asp
d:\ulacl.asp
执行完毕,在D盘上就会生成一个ulacl.asp文件,打开该文件,你就能看到源代码了!
‘捌’ asp文件如何加密
可以使用vb,把核心的代码部分做成动态连接库,然后注册到服务器端运行.这个是比较好的方法
‘玖’ asp如何加密网页
你说的"加密"指用户要输入用户名和密码才能进入该页?
----------------------
假设Access数据库 MyDatabase.mdb,password.asp 和 Test.asp 都在同一文件夹
password.asp代码:
<%
userName = Request.form("username")
password = Request.form("password")
Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
cn.Open "provider=microsoft.jet.oledb.4.0; data source=" & server.MapPath("MyDatabase.mdb")
strSQL="Select * From Members Where [UserName]='" & userName & "' And [Password]='" & passWord & "'"
rs.Open strSQL, cn
if rs.EOF then
%>
<form method="post">
<input name="username">
<input type="password" name="password">
<input type="submit">
</form>
<%
else
response.write "Welcome!"
end if
rs.Close
cn.Close
Set cn = Nothing
Set rs = Nothing
%>
Test.asp 代码:
<%
response.write "In Test.asp"
%>
<!--#include file = "password.asp"-->
‘拾’ 求asp 中文加密、解密的函数
base64
<%
'OPTION EXPLICIT
const BASE_64_MAP_INIT = "+/"
dim nl
' zero based arrays
dim Base64EncMap(63)
dim Base64DecMap(127)
' must be called before using anything else
PUBLIC SUB initCodecs()
' init vars
nl = "<P>" & chr(13) & chr(10)
' setup base 64
dim max, idx
max = len(BASE_64_MAP_INIT)
for idx = 0 to max - 1
' one based string
Base64EncMap(idx) = mid(BASE_64_MAP_INIT, idx + 1, 1)
next
for idx = 0 to max - 1
Base64DecMap(ASC(Base64EncMap(idx))) = idx
next
END SUB
' encode base 64 encoded string
PUBLIC FUNCTION base64Encode(plain)
if len(plain) = 0 then
base64Encode = ""
exit function
end if
dim ret, ndx, by3, first, second, third
by3 = (len(plain) \ 3) * 3
ndx = 1
do while ndx <= by3
first = asc(mid(plain, ndx+0, 1))
second = asc(mid(plain, ndx+1, 1))
third = asc(mid(plain, ndx+2, 1))
ret = ret & Base64EncMap( (first \ 4) AND 63 )
ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )
ret = ret & Base64EncMap( ((second * 4) AND 60) + ((third \ 64) AND 3 ) )
ret = ret & Base64EncMap( third AND 63)
ndx = ndx + 3
loop
' check for stragglers
if by3 < len(plain) then
first = asc(mid(plain, ndx+0, 1))
ret = ret & Base64EncMap( (first \ 4) AND 63 )
if (len(plain) MOD 3 ) = 2 then
second = asc(mid(plain, ndx+1, 1))
ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )
ret = ret & Base64EncMap( ((second * 4) AND 60) )
else
ret = ret & Base64EncMap( (first * 16) AND 48)
ret = ret & "="
end if
ret = ret & "="
end if
base64Encode = ret
END FUNCTION
' decode base 64 encoded string
PUBLIC FUNCTION base64Decode(scrambled)
if len(scrambled) = 0 then
base64Decode = ""
exit function
end if
' ignore padding
dim realLen
realLen = len(scrambled)
do while mid(scrambled, realLen, 1) = "="
realLen = realLen - 1
loop
dim ret, ndx, by4, first, second, third, fourth
ret = ""
by4 = (realLen \ 4) * 4
ndx = 1
do while ndx <= by4
first = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
third = Base64DecMap(asc(mid(scrambled, ndx+2, 1)))
fourth = Base64DecMap(asc(mid(scrambled, ndx+3, 1)))
ret = ret & chr( ((first * 4) AND 255) + ((second \ 16) AND 3))
ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15) )
ret = ret & chr( ((third * 64) AND 255) + (fourth AND 63) )
ndx = ndx + 4
loop
' check for stragglers, will be 2 or 3 characters
if ndx < realLen then
first = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
ret = ret & chr( ((first * 4) AND 255) + ((second \ 16) AND 3))
if realLen MOD 4 = 3 then
third = Base64DecMap(asc(mid(scrambled,ndx+2,1)))
ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15) )
end if
end if
base64Decode = ret
END FUNCTION
' initialize
call initCodecs
' Testing code
' dim inp, encode
' inp = request.QueryString("input")
' encode = base64Encode(inp)
' response.write "Encoded value = " & encode & nl
' response.write "Decoded value = " & base64Decode(encode) & nl
%>
BASE_64_MAP_INIT 是密钥~
最后几行是例子..
多个地方用最好写成ASP文件INCLUDE..