当前位置: 首页 > 图文教程 > 网络编程 > 编程10000问 > 怎样给文件加密最安全?

编程10000问
如何获知文件被改动的情况?
如何获知文件最后的修改日期和时间?
如何在线查询本地机的文件?
如何制作一个文本文件编辑器?
如何简单地上传文件?
如何上传一个单纯的HTML文件?
如何实现文件上传并自动归类功能?
如何实现无组件上传二进制文件?
在无组件的情况下,如何上传图片?
如何限制上传文件的大小?
如何用拦截表单的方法上传图片?
如何对用户进行授权?
如何更好地保护我的网页?
如何实现某些页面只让特定的用户浏览?
如何实现某一页面只让特定的用户浏览?
如何实现强制登录?
如何制作一个安全的页面?
如何最大限度地实现安全登录功能?
如何防止未经注册的用户绕过注册界面直接进入应用系统?
怎样避免直接在地址栏敲入URL即可绕过登录页的错误?

编程10000问 中的 怎样给文件加密最安全?


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 26 ::
收藏到网摘: n/a

<%@ Language = VBScript%>
<%

Response.Expires = 0


p = "abcdefg"
Set TestPWD = New CPassWord
TestPWD.EnPWD p
TestPWD.UnPWD TestPWD.ShowPWD(True)
k = TestPWD.ShowPWD(True)
l = TestPWD.ShowPWD(False)
Set TestPWD = Nothing
With Response
.Write "
原文:" & p & "<br>"
.Write "
加密后:" & k & "<br>"
.Write "
解密后:" & L & "<br>"
End With

Class CPassWord
Private CEnPWD,CUnPWD
Private Function My_Hex(My_Hex_Source)
My_Hex = Hex(My_Hex_Source)
If Len(My_Hex) = 1 Then
My_Hex = "0" & My_Hex
End If
End Function
Private Function My_UnHex(My_UnHex_Source)
If Len(My_UnHex_Source) = 2 Then
Temp_Value = My_HexReplace(Left(My_UnHex_Source,1))
End If
My_UnHex = Temp_Value * 16 + My_HexReplace(Right(My_UnHex_Source,1))
End Function
Private Function My_HexReplace(My_HexReplace_Source)
If Asc(My_HexReplace_Source) > 64 Then
My_HexReplace = Asc(UCase(My_HexReplace_Source)) - 55
Else
My_HexReplace = Asc(My_HexReplace_Source) - 48
End If
End Function
Public Property Get ShowPWD(EnP)

' 输出.
If EnP Then
ShowPWD = CEnPWD
Else
ShowPWD = CUnPWD
End If
End Property
Sub EnPWD(EnPWD_Source)
if EnPWD_Source = "" then
CEnPWD = 0
Exit Sub
else
Randomize
Key = Rnd * 256
While Key = 0
Key = Rnd * 256
Wend
For i=1 To Len(EnPWD_Source)
Temp_String = Key Xor Asc(Mid(EnPWD_Source,i,1))
Crc = Crc + Temp_String
CEnPWD = CEnPWD + My_Hex(Temp_String)
Next
CEnPWD = My_Hex(Key) + StrReverse(CEnPWD) + My_Hex(Crc Mod 256)
End if
End Sub
Sub UnPWD(UnPWD_Source)
If Len(UnPWD_Source) < 6 Or Len(UnPWD_Source) Mod 2 = 1 then
CUnPWD = 0
Exit Sub
End If
Old_Key = My_UnHex(Left(UnPWD_Source,2))
Old_Crc = My_UnHex(Right(UnPWD_Source,2))
Old_String = StrReverse(Mid(UnPWD_Source,3,Len(UnPWD_Source)-4))
For i=1 To Len(Old_String) - 1 Step 2
Temp_Value = My_UnHex(Mid(Old_String,i,2))
Crc_Temp = Crc_Temp + Temp_Value
Temp_String = Temp_String + Chr(Temp_Value Xor Old_Key)
Next
If Old_Crc <> (Crc_Temp Mod 256) Then
CUnPWD = 403
Exit Sub
End If
CUnPWD = Temp_String
End Sub
End Class

%>