程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP生成偽參數程序設計技巧

ASP生成偽參數程序設計技巧

編輯:關於ASP編程
前兩天在做一個站內版的企搜引擎,發現某些站點可以鏈接站點內容。。 
奇怪之下看了看,原來是按照數據庫ID的自動編號規律進行鏈接的~~ 
閒暇之余弄了下面這個東東,希望對大家在以後的編寫ASP程序中有所幫助! 
<% 

  ''//生成指定位數的隨機數字 

  ''//也可以用Guidy寫的iXuEr_Rnd_Str函數,自帶15種樣式,可以偽MD5啦!! 

  Function rndStr(strLong) 

  Dim tempStr 

  Randomize 

  Do While Len(rndStr) < strLong 

  tempStr=CStr(Chr((57-48)*rnd+48)) 

  rndStr=rndStr&tempStr 

  Loop 

  rndStr=rndStr 

  End Function 

  %> 

  下面以Form表單中提交的參數為例子針對Request.Form,需要傳遞的參數doAction原來的值是從數據庫讀取的ID 

  <form name=iform action="ABC.asp" method="post"> 

  <input name=doAction type="hidden" value="<%=rndStr(10)%><%=Rs("ID")%><%=rndStr(10)%>"> 

  </form> 

  注意: 

  上面的doAction的值有了改變,每刷新一次頁面得到的值都不一樣~~ 

  下面是ABC.asp頁面 

  首先取得doAction的值 

  doAction = Trim(Request.Form("doAction")) 

  下面大家可以自己加一點驗證,如IsNumeric等! 

  然後我們來分解doAction的值 

  Dim LastID 

  doAction = Mid(doAction,11) 

  LastID = Mid(doAction,1,Len(doAction)-10) 

  如果大家對Mid函數熟悉的話,上面的內容很容易就猜到,簡單吧? 

  下面是實際的例子: 

  原doAction要傳遞的ID在數據庫裡(字段類型為自動編號)的值為:34 

  說明: 

  Mid(doAction,11)裡的11為你所生成隨機字符位數+1 

  LastID = Mid(doAction,1,Len(doAction)-10)裡的10為所指定生成的隨機字符位數! 

  Dim LastID 

  doAction = 3614354944348151287527 — 經過偽裝後的ID值(完全可以當數字來驗證) 

  doAction = Mid(doAction,11) 

  LastID = Mid(doAction,1,Len(doAction)-10) 

  LastID = 34 

  我實驗了一下,如果配合隨機生成的字母和數字一起運用的話,那完全是可以偽成MD5類似的值! 

  只是條件就一個,要可以指定隨機字符的位數! 

  哈哈,現在大家Response.Write輸出LastID的值看看,是不是又是數據庫裡的ID啦? 

  這個方法可以運用到影片參數的加密,下載等.如做了政府的公文流轉系統,還可以用到文件上面去! 

  針對Request.QueryString的也是同一個道理!照葫蘆畫瓢啦... 

  以上是本人在編寫ASP程序中的一點點經驗,不足之處請大家多多指正! 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved