仓酷云

标题: ASP网页设计用ASP加密算法“回护”你的数据 [打印本页]

作者: 第二个灵魂    时间: 2015-1-16 23:15
标题: ASP网页设计用ASP加密算法“回护”你的数据
缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。加密|数据|算法起首复杂先容一下有关加密的背景。因为美国克制几种暗码算法的对外出口的加密位数(比方SSL的40位加密限定),本文将先容一种ASP可使用的复杂字符加密算法,而不是那些受限定的加密算法。实在,这里先容的加密算法关于一样平常的使用来讲已充足解密人贫苦一阵子的了。它的加密基本是最复杂的Vernum暗码办法,我将鄙人一篇文章中先容这类暗码。  它的基础道理是,必要有一个必要加密的
  明文和一个随机天生的解密钥匙文件。然后利用这两个文件组合起来天生密文。
  (明文)组合(密钥)=加密后的密文
  以是本文先容的是天生密钥的代码。我们假定我们天生的密钥为512位长的密钥,它已充足来加密一个文本字符了。代码以下:
  KeyGeN.asp文件
  <%
  ******************************
  KeyGeN.asp
  ******************************
  Constg_KeyLocation="C:key.txt"
  Constg_KeyLen=512  
  OnErrorResumeNext  
  CallWriteKeyToFile(KeyGeN(g_KeyLen),g_KeyLocation)  
  ifErr<>0Then
  Response.Write"ERRORGENERATINGKEY."&"<P>"
  Response.WriteErr.Number&"<BR>"
  Response.WriteErr.Description&"<BR>"
  Else
  Response.Write"KEYSUCCESSFULLYGENERATED."
  EndIf  
  SubWriteKeyToFile(MyKeyString,strFileName)
  DimkeyFile,fso
  setfso=Server.CreateObject("scripting.FileSystemObject")
  setkeyFile=fso.CreateTextFile(strFileName,true)
  keyFile.WriteLine(MyKeyString)
  keyFile.Close
  EndSub  
  FunctionKeyGeN(iKeyLength)
  Dimk,iCount,strMyKey
  lowerbound=35
  upperbound=96
  RandomizeInitializerandom-numbergenerator.
  ForI=1toiKeyLength
  s=255
  k=Int(((upperbound-lowerbound)+1)*Rnd+lowerbound)
  strMyKey=strMyKey&Chr(k)&""
  next
  KeyGeN=strMyKey
  EndFunction  
  %>
  在IIS下运转下面的KeyGeN.asp页面。你只必要云云做一次,他将把密钥写进文件c:key.txt中(假如你乐意的话,你也能够把这个文件放到别的一个加倍平安的中央).然后你能够翻开这个key.txt文件,它将包括512个ASCII码在35到96之间的字符.而且因为是随机天生的,以是每一个人的公家密钥文件key.txt将是纷歧样的,上面是一个例子密钥文件:  
  IY/;$>=3)?^-+7M32#Q]VOII.Q=OFMC`:P7_B;LG=I+@5%*+OP:F_=;NSY`-^S.`AA=BJ3M0.WF#T5LGK(=/<:+C2K/^7AI$;PUOME2+T8ND?W$C(J,;631M-LD5F%%1TF_&K2A-D-54[2P,#*JU%6`0RF3CMF0(#T07UFZ=>#,+.AW_/+]DIB;2DTIA57TT&-)O/*FM>H.XH5W^0Y*=71+5*^`^PKJ(=E/X#7A:?,S>R&T;+B#<:-*@)X9F`_`%QA3Z95.?_T#1,$2#FWW5PBH^*<])A(S0@AVD8C^Q0R^T1D?(1+,YE71X+.*+U$:3XO^Q].KG&0N0];[LJ
  上面再细心剖析一下下面的程序,我们发明个中的lowerbound和upperbound的数值实在就是你想利用来加密的ASCII字符局限。前面一篇文章中将先容怎样利用这个密钥来加密息争密一个字符串.
  在第一部分,会商了怎样天生密钥,上面将先容怎样利用这个密钥来加密息争密一个字符串。
  上面的代码就是可以同时完成这个功效的函数
  Crypt.asp文件
  <%
  Dimg_Key
  Constg_CryptThis="Nowisthetimefor
  allgoodmentocometotheaidoftheircountry."
  Constg_KeyLocation="c:key.txt"  
  g_Key=mid(ReadKeyFromFile(g_KeyLocation),1,Len(g_CryptThis))  
  Response.Write"<p>ORIGINALSTRING:"&g_CryptThis&"<p>"
  Response.Write"<p>KEYVALUE:"&g_Key&"<p>"
  Response.Write"<p>ENCRYPTEDCYPHERTEXT:"&EnCrypt(g_CryptThis)&"<p>"
  Response.Write"<p>DECRYPTEDCYPHERTEXT:"&DeCrypt(EnCrypt(g_CryptThis))&"<p>"  
  FunctionEnCrypt(strCryptThis)
  DimstrChar,iKeyChar,iStringChar,I
  forI=1toLen(strCryptThis)
  iKeyChar=Asc(mid(g_Key,I,1))
  iStringChar=Asc(mid(strCryptThis,I,1))
  ***uncommentbelowtoencryptwithaddition,
  iCryptChar=iStringChar+iKeyChar
  iCryptChar=iKeyCharXoriStringChar
  strEncrypted=strEncrypted&Chr(iCryptChar)
  next
  EnCrypt=strEncrypted
  EndFunction  
  FunctionDeCrypt(strEncrypted)
  DimstrChar,iKeyChar,iStringChar,I
  forI=1toLen(strEncrypted)
  iKeyChar=(Asc(mid(g_Key,I,1)))
  iStringChar=Asc(mid(strEncrypted,I,1))
  ***uncommentbelowtodecryptwithsubtraction
  iDeCryptChar=iStringChar-iKeyChar
  iDeCryptChar=iKeyCharXoriStringChar
  strDecrypted=strDecrypted&Chr(iDeCryptChar)
  next
  DeCrypt=strDecrypted
  EndFunction  
  FunctionReadKeyFromFile(strFileName)
  DimkeyFile,fso,f
  setfso=Server.CreateObject("Scripting.FileSystemObject")
  setf=fso.GetFile(strFileName)
  setts=f.OpenAsTextStream(1,-2)  
  DoWhilenotts.AtEndOfStream
  keyFile=keyFile&ts.ReadLine
  Loop  
  ReadKeyFromFile=keyFile
  EndFunction  
  %>
  在Crypt.asp中我们起首从密钥文件中失掉密钥值,然后从这段密钥中截取和我们必要加密的明文一样长度的密钥。然后利用一个复杂的异或操纵将明文和密钥举行运算,那末失掉的了局就是加密后的密文了。历程很复杂的。因为是利用了异或操纵,以是解密将十分复杂,只需利用一样的密钥对密文再次举行异或操纵就可以够解密
因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。
作者: 爱飞    时间: 2015-1-21 10:28
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
作者: 若相依    时间: 2015-1-25 15:22
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
作者: 愤怒的大鸟    时间: 2015-1-27 07:49
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
作者: 谁可相欹    时间: 2015-1-31 06:51
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
作者: 柔情似水    时间: 2015-2-17 22:50
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者: 老尸    时间: 2015-3-5 23:22
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
作者: 只想知道    时间: 2015-3-12 16:35
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
作者: 兰色精灵    时间: 2015-3-20 00:13
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2