asp加密字元串
1. ASP.NET中幾種加密方法
MD 的全稱是Message Digest Algorithm (信息 摘要演算法) 在 年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l rivest開發出來 經md md 和md 發展而來 它的作用是讓大容量信息在用數字簽名軟體簽署私人密匙前被"壓縮"成一種保密的格式(就是把一 個任意長度的位元組串變換成一定長的大整數) 不管是md md 還是md 它們都需要獲得一個隨機長度的信息並產生一個 位的信息摘要
加密哈希函數將任意長度的二進制字元串映射為固定長度的小型二進制字元串 加密哈希函數有這樣一個屬性 在計算上不大可能找到散列為相同的值的兩個 不同的輸入 也就是說 兩組數據的哈希值僅在對應的數據也匹配時才會匹配 數據的少量更改會在哈希值中產生不可預知的大量更改 所以你很難從加密後的文字 中找到蛛絲馬跡
SHA 的全稱是Secure Hash Algorithm(安全哈希演算法)
MD 演算法的哈希值大小為 位 而SHA 演算法的哈希值大小為 位 兩種演算法都是不可逆
雖說 年 月 日的美國加州聖巴巴拉的國際密碼學會議(Crypto』 )上 來自中國山東大學的王小雲教授做了破譯MD HAVAL MD 和RIPEMD演算法的報告 公布了MD系列演算法的破解結果 宣告了固若金湯的世界通行密碼標准MD5的堡壘轟然倒塌 引發了密碼學界的軒然 *** 但 是我覺得對於我們做普通的軟體來說 這個加密安全程度已經足夠使用了
我們平常用的最多的無非就是加密用戶密碼 把加密好的密碼存儲到資料庫中 進行密碼比較的時候 把用戶輸入的密碼再進行加密 然後與資料庫中的密文 進行比較 至於ASP net類中是如何實現加密演算法的 這個我們不需要關心 會用就行了
下面就是ASP NET中幾種加密方法 加密演算法有兩種 也就是上面提到的MD 和SHA 這里我舉的例子是以MD 為例 SHA 大致相同 只 是使用的類不一樣
MD 相關類
System Security Cryptography MD System Security Cryptography MD CryptoServiceProvider() System Web Security FormsAuthentication (strSource "MD ")SHA 相關類
System Security Cryptography SHA System Security Cryptography SHA CryptoServiceProvider() System Web Security FormsAuthentication (strSource "SHA ")方法如下 (用的vs )
/**//// <summary> /// 方法一:通過使用 new 運算符創建對象 /// </summary> /// <param name=strSource>需要加密的明文</param> /// <returns>返回 位加密結果 該結果取 位加密結果的第 位到 位</returns> public string Get_MD _Method (string strSource) { //new System Security Cryptography MD md = new System Security Cryptography MD CryptoServiceProvider(); //獲取密文位元組數組 byte[] bytResult = md ComputeHash(System Text Encoding Default GetBytes(strSource)); //轉換成字元串 並取 到 位 string strResult = BitConverter ToString(bytResult ); //轉換成字元串 位 //string strResult = BitConverter ToString(bytResult); //BitConverter轉換出來的字元串會在每個字元中間產生一個分隔符 需要去除掉 strResult = strResult Replace(" " ""); return strResult; } /**//// <summary> /// 方法二:通過調用特定加密演算法的抽象類上的 Create 方法 創建實現特定加密演算法的對象 /// </summary> /// <param name=strSource>需要加密的明文</param> /// <returns>返回 位加密結果</returns> public string Get_MD _Method (string strSource) { string strResult = ""; //Create System Security Cryptography MD md = System Security Cryptography MD Create(); //注意編碼UTF UTF Unicode等的選擇 byte[] bytResult = md ComputeHash(System Text Encoding UTF GetBytes(strSource)); //位元組類型的數組轉換為字元串 for (int i = ; i < bytResult Length; i++) { // 進制轉換 strResult = strResult + bytResult[i] ToString("X"); } return strResult; } /**//// <summary> /// 方法三:直接使用生成 /// </summary> /// <param name=strSource>需要加密的明文</param> /// <returns>返回 位加密結果</returns> public string Get_MD _Method (string strSource) { return System Web Security FormsAuthentication (strSource "MD "); } lishixin/Article/program/net/201311/14023
2. 求簡潔的ASP可逆加密演算法,要求看不出規律。
<%
functionjiami(byvals)'加密
randomize
s=escape(s)
fori=1tolen(s)
k=int(rnd*256)
jiami=jiami&right("0"&hex(asc(mid(s,i,1))xork),2)&right("0"&hex(k),2)
next
endfunction
functionjiemi(byvals)'解密
fori=1tolen(s)step4
jiemi=jiemi&chr(int("&H"&mid(s,i,2))xorint("&H"&mid(s,i+2,2)))
next
jiemi=unescape(jiemi)
endfunction
s="123網路知道abc"
response.write"要加密的字元串:"&s&"<br>"
s=jiami(s)
response.write"加密後的字元串:"&s&"<br>"
s=jiemi(s)
response.write"解密後的字元串:"&s&"<br>"
%>
這個加密程序的妙處在於,同一個字元串每次加密後的字元串都是不相同的,但都能夠解密回原來的字元串。
3. ASP.NET 對字元串加密解密 只有小寫字母和數字
這是我現在用的。 private static byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; //密鑰向量 /// <summary> /// 加密 /// </summary> /// <param name="EncryptString">待加密的字元串</param> /// <param name="EncryptKey">加密密鑰</param> /// <returns>加密成功返回加密後的字元串,失敗返回源串</returns> public static string Encrypt(string EncryptString, string EncryptKey) { byte[] byKey = null; byKey = System.Text.Encoding.UTF8.GetBytes(EncryptKey.Substring(0, 8)); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = System.Text.Encoding.UTF8.GetBytes(EncryptString); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); return Convert.ToBase64String(ms.ToArray()); } /// <summary> /// 解密 /// </summary> /// <param name="EncryptString">待解密的字元串</param> /// <param name="EncryptKey">解密密鑰</param> /// <returns>解密成功返回解密後的字元串,失敗返源串</returns> public static string Decrypt(string EncryptString, string EncryptKey) { byte[] byKey = null; byte[] inputByteArray = new Byte[EncryptString.Length]; try { byKey = System.Text.Encoding.UTF8.GetBytes(EncryptKey.Substring(0, 8)); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); inputByteArray = Convert.FromBase64String(EncryptString); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); System.Text.Encoding encoding = new System.Text.UTF8Encoding(); return encoding.GetString(ms.ToArray()); } catch { return ""; } }
4. asp程序加密如何實現
方法一:使用工具加密ASP代碼,簡單快捷,但沒有實際意義,很容易就被反編譯了。
方法二:把ASP封裝DLL,方法不復雜,但需要你有足夠許可權,虛擬主機是無法注冊DLL的,除非你是伺服器或者VPS,如果你是賣源碼的,程序安裝也需要VPS或伺服器的環境才行。
方法三:重要代碼遠程執行,就是ASP裡面的XMLHTTP,把核心部分全部放到你自己的空間里,賣給客戶的代碼都是遠程執行你空間里的代碼,然後在吧執行結果反饋回去。效率比較低,但適合訪問量低的應用,例如人事管理、直銷系統的獎金計算等等。
基本就上面這三種方法,我通通都用過,主要看程序價值了,貴的源碼都採用第二種方法,對方如果連個VPS都買不起,估計也不可能買得起我的代碼。 還有就是比較便宜的,代碼不太復雜,就是不希望客戶倒賣,主要是直銷系統。都是手打,一定要選我哦。
附2014ASP最新視頻教程http://www.uuucool.com/down/html/3692.html
5. 在asp頁面中如何對url問號後面的字元串進行加密
偽靜態處理的
用:Request.ServerVariables("QUERY_STRING")獲取?後面的參數
然後進行過濾就拿到值了
news_list.asp?1
id=Request.ServerVariables("QUERY_STRING")
那這個ID值就是1了如果是
news_list.asp?1.html
id=replace(Request.ServerVariables("QUERY_STRING"),".html","")
結果是一樣的
6. 求asp參數加密方法
可以 使用ScriptEncoder加密asp文件.ScriptEncoder的特點是:它只加密頁面中嵌入的腳本代碼,其他部分,
如HTML的TAG仍然保持原樣不變。處理後的文件中被加密過的部分為只讀內容,對加密部分的任何修改都將導致整個加密後的文件不能使用。ScriptEncoder加密過的ASP文件還將使ScriptDebugger之類的腳本調試工具失效。
ScriptEncoder是可以對ClientSideScript加密,也可以對ServerSideScript加密。使用簡介ScriptEncoder是個命令行工具,執行文件為SCRENC.EXE。它的操作非常簡單:SCRENC[/s][/f][/xl][/ldefLanguage][/edefExtension]inputfileoutputfile/s可選。讓ScriptEncoder「安靜」的工作,即執行過程沒有屏幕輸出。
(我使用的感覺忽略它,同樣沒有屏幕輸出。沒什麼用,懶得理了。)/f可選。指定輸出文件是否覆蓋同名輸入文件。忽略,將不執行覆蓋。/xl可選。是否在.asp文件的頂部添加@Language指令。忽略,將添加。/ldefLanguage可選。指定ScriptEncoder加密中選擇的預設腳本語言。文件中不包含這種腳本語言特性的腳本將被ScriptEncoder忽略。對於HTML和腳本文件來說,JScript為內置預設腳本語言。對於ASP文件,VBScript為預設腳本語言。同時對於擴展名為.vbs或.js的文件ScriptEncoder有自適應能力。/edefExtension可選。指定待加密文件的文件擴展名。預設狀態下,ScriptEncoder能識別asa,asp,cdx,htm,html,js,sct和vbs文件。ScriptEncoder下載地址:/msdownload/vbscript/scripting.asp?msid=32186&plat=x86&lang=Chinese/Simplified
7. Asp 對字元串 簡單 加密解密 高效演算法
'試試這個函數如何
<%
Function Enc(s)
str=""
key=""
dim l(130)
for i=1 to 130
if i=32 then l(i)=" "
li=instr(str,chr(i))
if li>0 then l(i)=mid(key,li,1)
next
for i=1 to len(s)
e=e&l(asc(mid(s,i,1)))
next
enc=e
End Function
%>
<%=Enc("hello world")%>
生成隨機Key的方法
<%
Function GetKey()
randomize
key=""
for n=1 to 1000
i=int(rnd*62)+1
j=int(rnd*62)+1
si=mid(key,i,1)
sj=mid(key,j,1)
key=replace(key,si,"-")
key=replace(key,sj,si)
key=replace(key,"-",sj)
next
GetKey=key
End Function
%>