一,aspupload上传并用AspEncrypt加密
1,建立上传表单,upload.html.
<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="upload.asp">
<INPUT TYPE=FILE SIZE=60 NAME="FILE1"><BR>
<INPUT TYPE=FILE SIZE=60 NAME="FILE2"><BR>
<INPUT TYPE=FILE SIZE=60 NAME="FILE3"><BR>
<INPUT TYPE=SUBMIT VALUE="Upload!">
</FORM>
2,处理上传并加密,文件 upload.asp.
<% '本例子需要服务器安装 AspEncrypt组件、Aspupload组件 .
const Password = "12345" '加密所用的key
Set CM = Server.CreateObject("Persits.CryptoManager") '创建加密对象 cm
Set Context = CM.OpenContext( "mycontainer", True )
Set Key = context.GenerateKeyFromPassword(Password)'设置key
Set Upload = Server.CreateObject("Persits.Upload.1") '创建aspupload上传对象
Upload.OverwriteFiles = False
Upload.SaveEncrypted server.mappath("uploadfile"), Key, ".xxx" '加密方式上传
%><TABLE BORDER=1>
<TR><TH>Path</TH><TH>Content-Type</TH><TH>Size</TH></TR>
<%
For Each File in Upload.Files
Response.Write "<TR><TD>" & File.Path & "</TD><TD>" & _
File.ContentType & "</TD><TD>" &_
File.Size & "</TD></TR>"
Next
%>
</TABLE>
注意事项:创建两个文件后,在相同目录下,创建一个叫uploadfile的文件夹(并保证该文件夹可写入),以保存上传的文件,然后在iis环境下运行upload.html。同时要记住上传时所用的key值,因为解密的时候要用到这个key才可以解密。
二,aspupload上传并用AspEncrypt解密
1,创建解密上传表单decrypted1.asp,代码如下:
<!--METADATA TYPE="TypeLib" UUID="{B72DF063-28A4-11D3-BF19-009027438003}"--> <!--这句不可缺少-->
<FORM METHOD="POST" ACTION="decrypted2.asp" ENCTYPE="multipart/form-data">
选择要解密的文件:<INPUT TYPE=FILE NAME="FileToEncrypt"> <BR/>
Password: <INPUT TYPE=TEXT SIZE=30 NAME="Password"> <BR/>
Cipher: <SELECT NAME="Alg">
<OPTION VALUE="<% = calgRC2 %>">RC2
<OPTION VALUE="<% = calgRC4 %>">RC4
<OPTION VALUE="<% = calgDES %>">DES
<OPTION VALUE="<% = calg3DES %>">Triple DES
</SELECT> <BR/>
<INPUT TYPE=SUBMIT NAME="Encrypt" VALUE="上传并解密">
</Form>
2,上传并解密,decrypted2.asp
<!--METADATA TYPE="TypeLib" UUID="{B72DF063-28A4-11D3-BF19-009027438003}"--> <!--这句不可缺少-->
<%
Set Upload = Server.CreateObject("Persits.Upload")
Set CM = Server.CreateObject("Persits.CryptoManager")
Set Context = CM.OpenContext("mycontainer", True)
Upload.Save server.mappath("uploadfile")
If Upload.Files.Count > 0 Then
alg = CInt(Upload.Form("alg"))
Password = Upload.Form("password")
Set Key = Context.GenerateKeyFromPassword(Password,calgSHA,alg )
For Each File in Upload.Files
FileName = File.ExtractFileName
If Right(FileName, 4) = ".xxx" Then FileName = Left( FileName, Len(FileName) - 4 ) '可修改扩展名.xxx
On Error Resume Next
Key.DecryptFile File.Path, server.mappath("uploadfile")&"/" & FileName
If Err = 0 Then
Response.write("上传并解密完成。你可以选择下载解密后的文件……")
Response.write("<a href="&server.mappath("uploadfile")&"/" & FileName&">"&FileName&"</a>")
Else
Response.write("发生错误:"& Err.Description)
End If
Next
Else
Response.Write "No files were uploaded."
End If
%>