用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