asp解密、還原chrw、chr編碼文件的方法
將asp函數(shù)的參數(shù)通過(guò)chrw編碼加密后,如何解碼chrw內(nèi)容。下面的解碼函數(shù),原來(lái)很簡(jiǎn)單,用正則提取內(nèi)容中的chrw串,然后eval動(dòng)態(tài)執(zhí)行獲取的chrw串得到內(nèi)容,再執(zhí)行替換即可。注意事項(xiàng)參考源代碼里面的注釋?zhuān)⒁鈱⒃创a保存為vbs格式的文件后執(zhí)行,如果是asp文件,需要將createobject修改為server.createobject。
function readfile(fn)'讀取編碼文件的內(nèi)容
set fso=createobject("scripting.filesystemobject")
set ts=fso.OpenTextFile(fn,1,false,-2)'注意這里的最后一個(gè)參數(shù),如果你的是unicode編碼,將-2(系統(tǒng)默認(rèn)編碼)修改為-1(unicode編碼)。0為ascii
readfile=ts.ReadAll
ts.close
set ts=nothing
set fso=nothing
end function
function decodechrw(s)'解碼chrw編碼的內(nèi)容
set rx=new RegExp
rx.Global=true
rx.IgnoreCase=true
rx.Pattern="ChrW\s*\(\s*\d+\s*\)(\s*&\s*ChrW\s*\(\s*\d+\s*\))*"'解碼chrw串
set mc=rx.Execute(s)
for each m in mc
s=replace(s, m.value,""""&eval(m.value)&"""")
next
rx.Pattern="Chr\s*\(\s*\d+\s*\)(\s*&\s*Chr\s*\(\s*\d+\s*\))*"‘急嗎chr串
set mc=rx.Execute(s)
for each m in mc
s=replace(s, m.value,""""&eval(m.value)&"""")
next
decodechrw=s
end function
function decodechrwfile(fn)'解碼內(nèi)容包含chrw編碼的文件
s=readfile(fn)
s=decodechrw(s)
'將解碼內(nèi)容寫(xiě)回文件
set fso=createobject("scripting.filesystemobject")
set ts=fso.OpenTextFile(replace(fn,".","_decode."),2,true,-2)'寫(xiě)入解碼后的內(nèi)容到原來(lái)文件名替換為 _decode的文件里面,如fn為encode.txt,則解碼后的文件為encode_decode.txt
ts.write s
ts.close
set ts=nothing
set fso=nothing
end function
decodechrwfile("encode.txt")'注意修改這里被chrw加密的文件名稱(chēng)及路徑,如果是客戶(hù)端提交的內(nèi)容
相關(guān)文章
asp生成不需要數(shù)據(jù)庫(kù)的中獎(jiǎng)碼
有一個(gè)思路是:將一批唯一中獎(jiǎng)碼,錄入的到數(shù)據(jù)庫(kù),中獎(jiǎng)時(shí),取出來(lái)一條,做一個(gè)標(biāo)記,把中獎(jiǎng)碼告訴2008-07-07
ASP實(shí)現(xiàn)類(lèi)似hashMap功能的類(lèi)
這篇文章主要介紹了ASP實(shí)現(xiàn)類(lèi)似hashMap功能的類(lèi)2015-10-10
通過(guò)Response.Flush()實(shí)現(xiàn)下載失敗的解決方法
Response.Flush()實(shí)現(xiàn)對(duì)服務(wù)端文件的下載時(shí),會(huì)失敗,不能正常彈出IE下載框,通過(guò)測(cè)試發(fā)現(xiàn)時(shí)瀏覽器的安全設(shè)置問(wèn)題,如下操作便可解決2013-08-08
asp 得到動(dòng)態(tài)數(shù)組中元素的個(gè)數(shù)
主要用到了 ubound(數(shù)組的名稱(chēng)) 這個(gè)函數(shù),這個(gè)函數(shù)用來(lái)求數(shù)組的上邊界。2009-06-06

