用Asp寫個(gè)加密與解密的類
發(fā)表時(shí)間:2024-02-05 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]用asp寫個(gè)簡(jiǎn)單的加密和解密的類,在這個(gè)類中簡(jiǎn)單的實(shí)現(xiàn)了一個(gè)加密和解密。目的是和大家分享一下。這個(gè)類的破解非常簡(jiǎn)單?纯次业淖⑨尵椭朗窃趺椿厥铝。下次編寫一個(gè)java的加密和解密的類! lass Base64Class rem Const dim sBASE_64_CHARACTERS轉(zhuǎn)...
用asp寫個(gè)簡(jiǎn)單的加密和解密的類,在這個(gè)類中簡(jiǎn)單的實(shí)現(xiàn)了一個(gè)加密和解密。目的是和大家分享一下。這個(gè)類的破解非常簡(jiǎn)單?纯次业淖⑨尵椭朗窃趺椿厥铝。下次編寫一個(gè)java的加密和解密的類。
class Base64Class
rem Const
dim sBASE_64_CHARACTERS轉(zhuǎn)化碼
dim lenString 計(jì)算字符串的長(zhǎng)度
dim iCount 計(jì)數(shù)器
dim returnValue 返回值
dim tempChar緩存字符
dim tempString緩存字符串
dim paramString 參數(shù)字符串
dim temHex緩存緩存十六進(jìn)制
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編碼的字符串進(jìn)行Base64編碼
********************************************
public function Encode(paramString)
tempString=
returnValue=
lenString=len(paramString)
if lenString<1 then
Encode=returnValue
else
mod3String=lenString mod 3
補(bǔ)足位數(shù)是為了便于計(jì)算
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處理最后剩余的幾個(gè)字符
if mod3String>0 then
tempBinary = Mid(paramString, iCount, mod3String)
if mod3String=1 then
tempString = tempBinary & Chr(64) & Chr(64) &Chr(64)用@號(hào)補(bǔ)足位數(shù)
else tempString = tempBinary & Chr(64) &Chr(64)用@號(hào)補(bǔ)足位數(shù)
end if
returnValue=returnValue & tempString
end if
*************************end處理最后剩余的幾個(gè)字符
Encode=returnValue end if end function
********************************************
end將Ansi編碼的字符串進(jìn)行Base64編碼
********************************************
********************************************
end將Base64編碼字符串轉(zhuǎn)換成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 字符串長(zhǎng)度應(yīng)當(dāng)是4的倍數(shù)
Decode=returnValue
else begin判斷是不是@號(hào)
if Mid(paramString, lenString-1, 1) = @ then
mod4String=2
end if
if Mid(paramString, lenString-2, 1) = @ then
mod4String=1
end if
end判斷是不是@號(hào)
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
處理最后剩余的幾個(gè)字符
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編碼字符串轉(zhuǎn)換成Ansi編碼的字符串
********************************************
作者:CSDN pxjianke