用Asp寫個加密與解密的類
發表時間:2024-06-04 來源:明輝站整理相關軟件相關文章人氣:
[摘要]用asp寫個簡單的加密和解密的類,在這個類中簡單的實現了一個加密和解密。目的是和大家分享一下。這個類的破解非常簡單?纯次业淖⑨尵椭朗窃趺椿厥铝。下次編寫一個java的加密和解密的類! lass Base64Class rem Const dim sBASE_64_CHARACTERS轉...
用asp寫個簡單的加密和解密的類,在這個類中簡單的實現了一個加密和解密。目的是和大家分享一下。這個類的破解非常簡單?纯次业淖⑨尵椭朗窃趺椿厥铝。下次編寫一個java的加密和解密的類。
class Base64Class
rem Const
dim sBASE_64_CHARACTERS轉化碼
dim lenString 計算字符串的長度
dim iCount 計數器
dim returnValue 返回值
dim tempChar緩存字符
dim tempString緩存字符串
dim paramString 參數字符串
dim temHex緩存緩存十六進制
dim tempLow緩存低位
dim tempHigh緩存高位
dim mod3String
dim mod4String
dim tempBinary
dim tempByteOne
dim tempByteTwo
dim tempByteThree
dim tempByteFour
dim tempSaveBitsOne
dim tempSaveBitsTwo
********************************************
begin初始化類
********************************************
private sub Class_Initialize()
sBASE_64_CHARACTERS=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz09+/endsub
********************************************
end初始化類
********************************************
********************************************
begin銷毀類
********************************************
Private Sub Class_Terminate()
sBASE_64_CHARACTERS= end sub
********************************************
end銷毀類
********************************************
********************************************
begin將Ansi編碼的字符串進行Base64編碼
********************************************
public function Encode(paramString)
tempString=
returnValue=
lenString=len(paramString)
if lenString<1 then
Encode=returnValue
else
mod3String=lenString mod 3
補足位數是為了便于計算
if mod3String>0 then
lenString=lenString+3-mod3String
lenString=lenString-3
[page_break]*************************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