將asp函數(shù)的參數(shù)通過chrw編碼加密后,如何解碼chrw內容。下面的解碼函數(shù),原來很簡單,用正則提取內容中的chrw串,然后eval動態(tài)執(zhí)行獲取的chrw串得到內容,再執(zhí)行替換即可。注意事項參考源代碼里面的注釋,注意將源代碼保存為vbs格式的文件后執(zhí)行,如果是asp文件,需要將createobject修改為server.createobject。
01 function readfile(fn)'讀取編碼文件的內容
02 set fso=createobject("scripting.filesystemobject")
03 set ts=fso.OpenTextFile(fn,1,false,-2)'注意這里的最后一個參數(shù),如果你的是unicode編碼,將-2(系統(tǒng)默認編碼)修改為-1(unicode編碼)。0為ascii
04 readfile=ts.ReadAll
05 ts.close
06 set ts=nothing
07 set fso=nothing
08 end function
09 function decodechrw(s)'解碼chrw編碼的內容
10 set rx=new RegExp
11 rx.Global=true
12 rx.IgnoreCase=true
13 rx.Pattern="ChrW\s*\(\s*\d+\s*\)(\s*&\s*ChrW\s*\(\s*\d+\s*\))*"'解碼chrw串
14 set mc=rx.Execute(s)
15 for each m in mc
16 s=replace(s, m.value,""""&eval(m.value)&"""")
17 next
18 rx.Pattern="Chr\s*\(\s*\d+\s*\)(\s*&\s*Chr\s*\(\s*\d+\s*\))*"‘急嗎chr串
19 set mc=rx.Execute(s)
20 for each m in mc
21 s=replace(s, m.value,""""&eval(m.value)&"""")
22 next
23 decodechrw=s
24
25 end function
26 function decodechrwfile(fn)'解碼內容包含chrw編碼的文件
27 s=readfile(fn)
28 s=decodechrw(s)
29 '將解碼內容寫回文件
30 set fso=createobject("scripting.filesystemobject")
31 set ts=fso.OpenTextFile(replace(fn,".","_decode."),2,true,-2)'寫入解碼后的內容到原來文件名替換為 _decode的文件里面,如fn為encode.txt,則解碼后的文件為encode_decode.txt
32 ts.write s
33 ts.close
34 set ts=nothing
35 set fso=nothing
36 end function
37 decodechrwfile("encode.txt")'注意修改這里被chrw加密的文件名稱及路徑,如果是客戶端提交的內容
更多信息請查看IT技術專欄