A veces, todo el mundo disfruta del cifrado y descifrado base64. El siguiente es el código de implementación específico que los amigos que lo necesiten pueden consultar. Copie el código de código de la siguiente manera:
<%
sBASE_64_CHARACTERS = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
sBASE_64_CHARACTERS = strUnicode2Ansi(sBASE_64_CHARACTERS)
Función strUnicodeLen(asContents)
'Calcula la longitud de la codificación Ansi de la cadena Unicode
asContents1=a&asContenidos
len1=len(comoContenido1)
k=0
para i=1 a len1
asc1=asc(mid(asContents1,i,1))
si asc1<0 entonces asc1=65536+asc1
si asc1>255 entonces
k=k+2
demás
k=k+1
terminar si
próximo
strUnicodeLen=k-1
Función final
Función strUnicode2Ansi(asContents)
'Convierte una cadena codificada en Unicode a una cadena codificada en Ansi
strUnicode2Ansi=
len1=len(comoContenido)
para i=1 a len1
varchar=mid(comoContenido,i,1)
varasc=asc(varchar)
si varasc<0 entonces varasc=varasc+65536
si varasc>255 entonces
varHex=Hex(varasc)
varlow=izquierda(varHex,2)
varalto=derecho(varHex,2)
strUnicode2Ansi=strUnicode2Ansi & chrb(&H & varlow) & chrb(&H & varhigh)
demás
strUnicode2Ansi=strUnicode2Ansi & chrb(varasc)
terminar si
próximo
Función final
Función strAnsi2Unicode(asContents)
'Convierte una cadena codificada en Ansi a una cadena codificada en Unicode
strAnsi2Unicode =
len1=lenb(comoContenido)
si len1=0 entonces sale de la función
para i=1 a len1
varchar=midb(comoContenido,i,1)
varasc=ascb(varchar)
si varasc > 127 entonces
strAnsi2Unicode = strAnsi2Unicode & chr(ascw(midb(asContents,i+1,1) & varchar))
yo=yo+1
demás
strAnsi2Unicode = strAnsi2Unicode & chr(varasc)
terminar si
próximo
Función final
Función Base64encode (como contenido)
'Base64 codifica la cadena codificada en Ansi
'asContents debe ser una cadena codificada ANSI (las cadenas binarias también son aceptables)
Posición tenue
Resultado ls tenue
Char1 tenue
Char2 tenue
Char3 tenue
Char4 tenue
Byte1 atenuado
Byte2 atenuado
Byte3 oscuro
Atenuar SaveBits1
Atenuar SaveBits2
Dim lsGroupBinary
tenue lsGroup64
Atenuar m4,len1,len2
len1=Lenb(comoContenido)
si len1<1 entonces
Código base64 =
Función de salida
terminar si
m3=Len1 Mod 3
Si M3 > 0 Entonces asContents = asContents & String(3-M3, chrb(0))
'Se utilizan dígitos suplementarios para facilitar los cálculos.
SI m3 > 0 ENTONCES
longitud1=len1+(3-m3)
len2=len1-3
demás
longitud2=len1
terminar si
lsResultado=
Para lnPosition = 1 A len2 Paso 3
lsGrupo64 =
lsGroupBinary = Midb(asContents, lnPosition, 3)
Byte1 = Ascb(Midb(lsGroupBinary, 1, 1)): SaveBits1 = Byte1 y 3
Byte2 = Ascb(Midb(lsGroupBinary, 2, 1)): SaveBits2 = Byte2 y 15
Byte3 = Ascb(Midb(lsGroupBinary, 3, 1))
Char1 = Midb(sBASE_64_CHARACTERS, ((Byte1 y 252) / 4) + 1, 1)
Char2 = Midb(sBASE_64_CHARACTERS, (((Byte2 y 240) / 16) O (SaveBits1 * 16) y &HFF) + 1, 1)
Char3 = Midb(sBASE_64_CHARACTERS, (((Byte3 y 192) / 64) O (SaveBits2 * 4) y &HFF) + 1, 1)
Char4 = Midb(sBASE_64_CHARACTERS, (Byte3 y 63) + 1, 1)
lsGroup64 = Char1 y Char2 y Char3 y Char4
lsResult = lsResult & lsGroup64
Próximo
'Procesar los últimos caracteres restantes
si M3 > 0 entonces
lsGrupo64 =
lsGroupBinary = Midb(asContents, len2+1, 3)
Byte1 = Ascb(Midb(lsGroupBinary, 1, 1)): SaveBits1 = Byte1 y 3
Byte2 = Ascb(Midb(lsGroupBinary, 2, 1)): SaveBits2 = Byte2 y 15
Byte3 = Ascb(Midb(lsGroupBinary, 3, 1))
Char1 = Midb(sBASE_64_CHARACTERS, ((Byte1 y 252) / 4) + 1, 1)
Char2 = Midb(sBASE_64_CHARACTERS, (((Byte2 y 240) / 16) O (SaveBits1 * 16) y &HFF) + 1, 1)
Char3 = Midb(sBASE_64_CHARACTERS, (((Byte3 y 192) / 64) O (SaveBits2 * 4) y &HFF) + 1, 1)
si M3=1 entonces
lsGroup64 = Char1 & Char2 & ChrB(61) & ChrB(61) 'Utilice el signo = para completar los dígitos
demás
lsGroup64 = Char1 & Char2 & Char3 & ChrB(61) 'Utilice el signo = para formar los dígitos
terminar si
lsResult = lsResult & lsGroup64
terminar si
Código base64 = lsResultado
Función final
Función Base64decode (como contenido)
'Convierte una cadena codificada en Base64 a una cadena codificada en Ansi
'asContents también debe ser una cadena codificada ANSI (las cadenas binarias también son aceptables)
Resultado ls tenue
Posición tenue
Dim lsGroup64, lsGroupBinary
Atenuar Char1, Char2, Char3, Char4
Atenuar Byte1, Byte2, Byte3
Atenuado M4,len1,len2
len1= Lenb(comoContenido)
M4 = longitud 1 Mod 4
si len1 < 1 o M4 > 0 entonces
'La longitud de la cadena debe ser múltiplo de 4
Código base64=
Función de salida
terminar si
'Determinar si el último dígito es el signo =
'Determinar si el penúltimo dígito es el signo =
'Aquí m4 representa el último número restante de caracteres que deben procesarse por separado
si midb(asContents, len1, 1) = chrb(61) entonces m4=3
si midb(asContents, len1-1, 1) = chrb(61) entonces m4=2
si m4 = 0 entonces
longitud2=len1
demás
longitud2=len1-4
terminar si
Para lnPosition = 1 a Len2 Paso 4
lsGrupoBinario =
lsGroup64 = Midb(asContenido, lnPosition, 4)
Char1 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 1, 1)) - 1
Char2 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 2, 1)) - 1
Char3 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 3, 1)) - 1
Char4 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 4, 1)) - 1
Byte1 = Chrb(((Char2 y 48) / 16) o (Char1 * 4) y &HFF)
Byte2 = lsGroupBinary & Chrb(((Char3 y 60) / 4) O (Char2 * 16) y &HFF)
Byte3 = Chrb((((Char3 y 3) * 64) y &HFF) o (Char4 y 63))
lsGroupBinary = Byte1 y Byte2 y Byte3
lsResult = lsResult & lsGroupBinary
Próximo
'Procesar los últimos caracteres restantes
si M4 > 0 entonces
lsGrupoBinario =
lsGroup64 = Midb(asContents, len2+1, m4) & chrB(65) 'chr(65)=A, convertido al valor 0
si M4=2 entonces 'Agregue 4 dígitos para facilitar el cálculo
lsGroup64 = lsGroup64 y chrB(65)
terminar si
Char1 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 1, 1)) - 1
Char2 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 2, 1)) - 1
Char3 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 3, 1)) - 1
Char4 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 4, 1)) - 1
Byte1 = Chrb(((Char2 y 48) / 16) o (Char1 * 4) y &HFF)
Byte2 = lsGroupBinary & Chrb(((Char3 y 60) / 4) o (Char2 * 16) y &HFF)
Byte3 = Chrb((((Char3 y 3) * 64) y &HFF) o (Char4 y 63))
si M4=2 entonces
lsGroupBinary = Byte1
de lo contrario, si M4 = 3, entonces
lsGroupBinary = Byte1 y Byte2
terminar si
lsResult = lsResult & lsGroupBinary
terminar si
Base64decode = lsResultado
Función final
%>