当前位置: 首页 > 图文教程 > 网络编程 > ASP > 一段在asp中加密与解密对应的函数

ASP
[原创]asp下用实现模板加载的的几种方法总结
asp下利用fso实现文件夹或文件移动改名等操作函数
asp cint clng的范围与防止cint和clng的溢出解决方法大全
asp防范跨站点脚本攻击的的方法
独孤剑写的马克斯迅雷片库采集插件1.4 官方最新版提供下载了
根据日期得到生肖的ASP函数
不错的主要用于加密的vbs(asp)位移运算类
Script.VBS.Agent.ai juan.vbs专杀
循环取值Request.QueryString的用法
asp下实现字符串的补充fill()
无服务器做任意二级米子站
几种另类的ASP后门
asp事物功能简单小应用
ASP获取网页全部图片地址并保存为数组的正则
通过客户端验证上传图片文件大小的ASP源码
asp下计算分页的几种方法
谈动态多行多列,循环行和列,输出M行N列的ASP代码
asp在线执行sql语句的函数
asp正则html的图片,对图自动缩放大小
文件名 正则表达式提取方法

ASP 中的 一段在asp中加密与解密对应的函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 128 ::
收藏到网摘: n/a

在ASP中加密方法有对应的解密方法好象不多,现在根据前辈资料整理出在asp中加密与解密函数
rsa.asp
<%
rem 在ASP中实现加密与解密,加密方法:根据RSA
rem 联系:[email protected]
Class clsRSA
  Public PrivateKey
  Public PublicKey
  Public Modulus
  
  
  
  Public Function Crypt(pLngMessage, pLngKey)
    On Error Resume Next
    Dim lLngMod
    Dim lLngResult
    Dim lLngIndex
    If pLngKey Mod 2 = 0 Then
      lLngResult = 1
      For lLngIndex = 1 To pLngKey / 2
        lLngMod = (pLngMessage ^ 2) Mod Modulus
        ' Mod may error on key generation
        lLngResult = (lLngMod * lLngResult) Mod Modulus
        If Err Then Exit Function
      Next
    Else
      lLngResult = pLngMessage
      For lLngIndex = 1 To pLngKey / 2
        lLngMod = (pLngMessage ^ 2) Mod Modulus
        On Error Resume Next
        ' Mod may error on key generation
        lLngResult = (lLngMod * lLngResult) Mod Modulus
        If Err Then Exit Function
      Next
    End If
    Crypt = lLngResult
  End Function

  Public Function Encode(ByVal pStrMessage)
    Dim lLngIndex
    Dim lLngMaxIndex
    Dim lBytAscii
    Dim lLngEncrypted
    lLngMaxIndex = Len(pStrMessage)
    If lLngMaxIndex = 0 Then Exit Function
    For lLngIndex = 1 To lLngMaxIndex
      lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
      lLngEncrypted = Crypt(lBytAscii, PublicKey)
      Encode = Encode & NumberToHex(lLngEncrypted, 4)
    Next
  End Function
  
  Public Function Decode(ByVal pStrMessage)
    Dim lBytAscii
    Dim lLngIndex
    Dim lLngMaxIndex
    Dim lLngEncryptedData
    Decode = ""
    lLngMaxIndex = Len(pStrMessage)
    For lLngIndex = 1 To lLngMaxIndex Step 4
      lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
      lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
      Decode = Decode & Chr(lBytAscii)
    Next
  End Function
  
  Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
    NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
  End Function
  Private Function HexToNumber(ByRef pStrHex)
    HexToNumber = CLng("&h" & pStrHex)
  End Function
End Class
%>

test.asp
<!--#INCLUDE FILE="RSA.asp"-->
<%
function Encryptstr(Message)
Dim LngKeyE
Dim LngKeyD
Dim LngKeyN
Dim StrMessage
Dim ObjRSA

  LngKeyE = "32823"
  LngKeyD = "20643"
  LngKeyN = "29893"
  StrMessage = Message
  
  Set ObjRSA = New clsRSA
  
 
      ObjRSA.PublicKey = LngKeyE
      ObjRSA.Modulus = LngKeyN
      Encryptstr = ObjRSA.Encode(StrMessage)
  Set ObjRSA = Nothing
end function


function decryptstr(Message)
Dim LngKeyE
Dim LngKeyD
Dim LngKeyN
Dim StrMessage
Dim ObjRSA

  LngKeyE = "32823"
  LngKeyD = "20643"
  LngKeyN = "29893"
  StrMessage = Message
  
  Set ObjRSA = New clsRSA
      ObjRSA.PrivateKey =LngKeyD
      ObjRSA.Modulus=LngKeyN
      decryptstr=ObjRSA.Decode(StrMessage)
  Set ObjRSA = Nothing
end function

dim last,first
first="sohu"
Response.Write "加密前为:"&first
last=Encryptstr(first)
Response.Write "加密后为"&last
Response.Write "解密后为" &decryptstr(last)
%>