用Asp写个加密和解密的类(2)

发表于:2007-06-30来源:作者:点击数: 标签:
*************************begin for iCount=1 to lenString step 3 temPBinary = Mid(paramString, iCount, 3) response.write tempBinary tempByteOne= Asc(Mid(tempBinary, 1, 1)): tempSaveBitsOne=tempByteOne And 3 tempByteTwo = Asc(Mid(tempBinary,
     *************************begin
  
    for iCount=1 to lenString step 3
  
    temPBinary = Mid(paramString, iCount, 3)
  
    response.write tempBinary
  
    tempByteOne= Asc(Mid(tempBinary, 1, 1)): tempSaveBitsOne=tempByteOne And 3
  
    tempByteTwo = Asc(Mid(tempBinary, 2, 1)): tempSaveBitsTwo=tempByteTwo And 15
  
    tempChar = Asc(Mid(tempBinary, 3, 1))
  
    tempByteOne = Mid(sBASE_64_CHARACTERS, ((tempByteOne And 252) 4)+ 1, 1)
  
    tempByteTwo = Mid(sBASE_64_CHARACTERS, (((tempByteTwo And 240)16) Or (tempSaveBitsOne * 16) And &HFF) + 1, 1)
  
    tempByteThree = Mid(sBASE_64_CHARACTERS, (((tempChar And 192)64) Or (tempSaveBitsTwo * 4) And &HFF) + 1, 1)
  
    tempByteFour = Mid(sBASE_64_CHARACTERS, (tempChar And 63) +1,1)
  
    tempString = tempByteOne & tempByteTwo &tempByteThree& tempByteFour returnValue=returnValue &tempStringnext
  
    *************************end
  
    *************************begin处理最后剩余的几个字符
  
    if mod3String>0 then
  
    tempBinary = Mid(paramString, iCount, mod3String)
  
    if mod3String=1 then
  
    tempString = tempBinary & Chr(64) & Chr(64) &Chr(64)用@号补足位数
  
    else tempString = tempBinary & Chr(64) &Chr(64)用@号补足位数
  
    end if
  
    returnValue=returnValue & tempString
  
    end if
  
    *************************end处理最后剩余的几个字符
  
    Encode=returnValue end if end function
  
    ********************************************
  
    end将Ansi编码的字符串进行Base64编码
  
    ********************************************
  
    ********************************************
  
    end将Base64编码字符串转换成Ansi编码的字符串
  
    ********************************************
  
    public function Decode(paramString)
  
    tempString=
  
    returnValue=
  
    lenString=len(paramString)
  
    if lenString<1 then
  
    Decode=returnValue
  
    else
  
    mod4String=lenString mod 4
  
    if mod4String >0 then 字符串长度应当是4的倍数
  
    Decode=returnValue
  
    else begin判断是不是@号
  
    if Mid(paramString, lenString-1, 1) = @ then
  
    mod4String=2
  
    end if
  
    if Mid(paramString, lenString-2, 1) = @ then
  
    mod4String=1
  
    end if
  
    end判断是不是@号
  
    if mod4String>0 then
  
    lenString=lenString-4
  
  
    ******************************begin
  
    for iCount=1 to lenString step 4
  
    tempString = Mid(paramString, iCount, 4)
  
    tempByteOne = InStr(sBASE_64_CHARACTERS, Mid(tempString, 1, 1))-1
  
    tempByteTwo = InStr(sBASE_64_CHARACTERS, Mid(tempString, 2, 1))-1
  
    tempByteThree = InStr(sBASE_64_CHARACTERS, Mid(tempString, 3,1))- 1
  
    tempByteFour = InStr(sBASE_64_CHARACTERS, Mid(tempString, 4, 1))-1
  
    tempByteOne = Chr(((tempByteTwo And 48) 16) Or (tempByteOne *4)And &HFF) tempByteTwo = & Chr(((tempByteThree And 60)4) Or (tempByteTwo * 16) And &HFF)
  
    tempByteThree = Chr((((tempByteThree And 3) * 64) And &HFF)Or(tempByteFour And 63))
  
    tempString=tempByteOne & tempByteTwo & tempByteThree
  
    returnValue=returnValue & tempString
  
    next
  
    ******************************end
  
    处理最后剩余的几个字符
  
    if mod4String > 0 then
  
    tempString=center(center(paramString,4),mod4String)
  
    returnValue = returnValue & tempString
  
    end if
  
    Decode=returnValue
  
    end if
  
    end if
  
    end function
  
    ********************************************
  
    end将Base64编码字符串转换成Ansi编码的字符串
  
    ********************************************
  
    作者:CSDN pxjianke
  
  
  
  

原文转自:http://www.ltesting.net