⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 加密和解密.htm

📁 VBSCRIPT的源码,相信很多html程序员都会用到,这些源码小小变动一下,可以用在很多地方,尤其在DHTML中!
💻 HTM
字号:
<HTML>
<HEAD>
<META name="VI60_DefaultClientScript" Content="VBScript">
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>
	密码生成器
</TITLE>
</HEAD>
<script LANGUAGE="VBScript">
<!--
'萨拉法加密
Function Crypt(texti, salasana)
    dim X1
    '得到辅助字符串所有字符ASC码的总和
     For T = 1 To Len(salasana)
           sana = Asc(Mid(salasana, T, 1))
           X1 = X1 + sana
      Next
       X1 = Int((X1 * 0.1) / 6)
       '得到一个用于加密的固定值salasana
       salasana = X1
       G = 0
       Crypted=""
       '轮流给每个字符加密,其方式不具有太多的理论性,完全依靠固定规则的数字计算,再将得到的Ascii码转换为字符
       For TT = 1 To Len(texti)
            sana = Asc(Mid(texti, TT, 1))
            G = G + 1
           If G = 6 Then G = 0
               X1 = 0
               If G = 0 Then X1 = sana - (salasana - 2)
               If G = 1 Then X1 = sana + (salasana - 5)
               If G = 2 Then X1 = sana - (salasana - 4)
               If G = 3 Then X1 = sana + (salasana - 2)
               If G = 4 Then X1 = sana - (salasana - 3)
               If G = 5 Then X1 = sana + (salasana - 5)
               X1 = X1 + G
               Crypted = Crypted & Chr(X1)
      Next                                                                                    
      Crypt = Crypted
End Function
'萨拉法解密,是上述过程的逆过程,即如果上面符号是正的,这就是负的
Function DeCrypt(texti, salasana)
              For T = 1 To Len(salasana)
                     sana = Asc(Mid(salasana, T, 1))
                     X1 = X1 + sana
              Next
       X1 = Int((X1 * 0.1) / 6)
       salasana = X1
       G = 0
       DeCrypted=""
              For TT = 1 To Len(texti)
                     sana = Asc(Mid(texti, TT, 1))
                     G = G + 1
                            If G = 6 Then G = 0
                            X1 = 0
                            If G = 0 Then X1 = sana + (salasana - 2)
			                If G = 1 Then X1 = sana - (salasana - 5)
                            If G = 2 Then X1 = sana + (salasana - 4)
                            If G = 3 Then X1 = sana - (salasana - 2)
                            If G = 4 Then X1 = sana + (salasana - 3)
                            If G = 5 Then X1 = sana - (salasana - 5)
                            X1 = X1 - G
                            DeCrypted = DeCrypted & Chr(X1)
              Next
       DeCrypt = DeCrypted
End Function

	'迷式加密法,加密和解密是互逆过程
	'参数是要加密(或解密)的字符串和关键字
	Function Enigma(mstext,sKeyString) 
	    Dim X                    
	    Dim Y                    
	    Dim Z                    
	    Dim W 
	    Dim C2E                
	    Dim Str2Encrypt
		Dim LCW                
		Dim LS2E                
		Dim LAM               
		Dim MP              
	    Dim Matrix           
	    Dim mov1                
	    Dim mov2                
	    Dim CodeWord        
	    Dim CWL                
	    Dim EncryptedString   
	    Dim EncryptedLetter   
	    Dim strCryptMatrix(97)
	    
	    '初始矩阵的字符串,这里包含了几乎所有的可输入字符,前面7位标识了这个字符串的代号   
	    Matrix = "8x3p5BeabcdfghijklmnoqrstuvwyzACDEFGHIJKLMNOPQRSTUVWXYZ 1246790-.#/\!@$<>&*()[]{}';:,?=+~`^|%_"
	    '增添回车符
	    Matrix = Matrix + Chr(13) 
	    '增添退格符
	    Matrix = Matrix + Chr(10) 
	    '增添"符
	    Matrix = Matrix + Chr(34) 
	    
	    W = 1
	    '初始矩阵长度
	    LAM = Len(Matrix)
	    '加密矩阵的第一行就是初始矩阵
	    strCryptMatrix(1) = Matrix
	  
	    '生成一个LAM*LAM的加密矩阵,矩阵元如下形式
	    '以3*3为例:
	    '|1  2  3|
	    '|2  3  1|
	    '|3  1  2|
	    '矩阵是个对称阵
	    For X = 2 To LAM
	        mov1 = Left(strCryptMatrix(W), 1)
	        mov2 = Right(strCryptMatrix(W), (LAM - 1)) 
	        strCryptMatrix(X) = mov2 + mov1 
	        W = W + 1
	    Next 

	    '加密关键字字符串
	    CodeWord = sKeyString
	    '需加密的字符串
	    Str2Encrypt = mstext
	    '需加密字符串的长度
	    LS2E = Len(mstext)
	    '加密关键字串的长度
	    LCW = Len(CodeWord)
	    '加密字
	    EncryptedLetter = ""
	    '加密好的字符串
	    EncryptedString = ""
		
		'加密关键字指针
	    Y = 1
	    For X = 1 To LS2E
			'取待加密字符串中的一个字符
	        C2E = Mid(Str2Encrypt, X, 1)
	        '获取该字符在起始矩阵(加密矩阵的第一行)中的位置
	        MP = InStr(1, Matrix, C2E, 0)
	        '取一个加密关键字
	        CWL = Mid(CodeWord, Y, 1)
	        '遍历矩阵的行,寻找合适的加密字
	        For Z = 1 To LAM
				'如果矩阵哪一行中的第MP个字符恰好是加密关键字
	            If Mid(strCryptMatrix(Z), MP, 1) = CWL Then
					'则该字符所在矩阵的第一个字符即为加密字符
	                EncryptedLetter = Left(strCryptMatrix(Z), 1)
	                '存储加密后的字符
	                EncryptedString = EncryptedString + EncryptedLetter
	                Exit For
	            End If
	        Next 
	        '加密关键字指针加1
	        Y = Y + 1
	        '如果大于LCW就回1 
	        If Y > LCW Then Y = 1
	    Next 
	    '将加密(解密)好的字符串赋给函数值
	    Enigma = EncryptedString 
	End Function


'当用户改变了密码生成方法时
sub D1_onchange
'根据用户的不同选择,决定辅助选项栏的内容
select case D1.value 
case "0"
div0.style.visibility ="visible"
div1.style.visibility ="hidden"
case "1"
div0.style.visibility ="hidden"
div1.style.visibility ="visible"
end select
end sub

'禁止用户编辑密码栏
sub S2_onfocus
    s2.blur 
end sub

'用户点击加密键
sub B1_onclick
    '根据不同的加密方法进行加密
    select case D1.value 
     case "0"
         if trim(t1.value)="" then
        	msgbox "没有密钥,不能加密"
        	exit sub
        end if
	s2.value =enigma(S1.value ,t1.value)
	S1.value=""
     case "1"
        if trim(t2.value)="" then
        	msgbox "没有密钥,不能加密"
        	exit sub
        end if
	S2.value =Crypt(S1.value,t2.value)
	S1.value=""
    end select 
end sub

'用户点击了解密键
sub B2_onclick
'根据不同的加密方法进行解密
	select case D1.value 
	case "0"
	if trim(t1.value)="" then
        	msgbox "没有密钥,不能解密"
        	exit sub
        end if
	s1.value =enigma(S2.value ,t1.value)
	S2.value=""
	case "1"
	if trim(t2.value)="" then
        	msgbox "没有密钥,不能解密"
        	exit sub
        end if
	S1.value =DeCrypt(S2.value,t2.value)
	s2.value =""
	end select 
end sub
-->
</script>

<body background="1.jpg">

<p align="center">
  <font  size="5" >
    <strong>加密和解密</strong>
 
  </font>
</p>
<div align="center">
<center>
<table border="2" width="95.4%" height=226 style="HEIGHT: 226px; WIDTH: 436px">
  <tr>
    <td width="50%">
      <p><font>
         <strong>原文:</strong>
         <strong>
         <TEXTAREA name=S1></TEXTAREA>
         </strong>
         </font>
      </p>
    </td>
    <td width="50%">
      <p><font size="3" >
          <strong>选择加密算法:</strong><br><br>
           <strong>
           <select name="D1" size="1">
             <option selected value="0">迷 式 加 密 法
             <option value="1">辅 助 加 密 法
           </select>
          </strong>
         </font>
       </p>
    <p>
    <font face="隶书" size="3" color="#ff0000">
      
     </font>
     </p>
     </td>
  </tr>
  <tr>
    <td width="50%">
      <font >
        <strong>密码:</strong>
      </font>
      <p><font>
          <strong><TEXTAREA name=S2>
          </TEXTAREA></strong>
         </font>
      </p>
    </td>
    <td width="50%">
      <div id=div0 style="POSITION: absolute; TOP: 200px; VISIBILITY: visible" >
         <font>
            <strong>加密密钥(关键字符):
            </strong>
         </font><br><br>
         <input id=t1>
      </div>
      <div id=div1 style="POSITION: absolute; TOP: 200px; VISIBILITY: hidden" >
	      <font >
	         <strong>加密密钥(加密字符):
	         </strong>
	      </font><br><br>
	      <input id=t2>
      </div> 
    </td>
  </tr>
</table>
 <font color=red> 
 <strong>注一定要输入加密或解密,否则不能做任何事
 </strong>
</font>
<br><br>
<strong>
	<input type="button" value="加密" name="B1">
      	<input type="button" value="解密" name="B2">
</strong>
</center>
</div>
</body>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -