Terkadang semua orang menikmati enkripsi dan dekripsi base64. Berikut ini adalah kode implementasi spesifik. Copy kode kodenya sebagai berikut:
<%
sBASE_64_CHARACTERS = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
sBASE_64_CHARACTERS = strUnicode2Ansi(sBASE_64_CHARACTERS)
Fungsi strUnicodeLen(sebagaiIsi)
'Hitung panjang pengkodean Ansi dari string unicode
asContents1=a&asContents
len1=len(sebagaiIsi1)
k=0
untuk i=1 hingga len1
asc1=asc(tengah(asContents1,i,1))
jika asc1<0 maka asc1=65536+asc1
jika asc1>255 maka
k=k+2
kalau tidak
k=k+1
berakhir jika
Berikutnya
strUnicodeLen=k-1
Fungsi Akhir
Fungsi strUnicode2Ansi(sebagaiIsi)
'Konversi string berkode Unicode menjadi string berkode Ansi
strUnicode2Ansi=
len1=len(sebagaiIsi)
untuk i=1 hingga len1
varchar=tengah(sebagaiIsi,i,1)
varasc=asc(varchar)
jika varasc<0 maka varasc=varasc+65536
jika varasc>255 maka
varHex=Hex(varasc)
varlow=kiri(varHex,2)
varhigh=kanan(varHex,2)
strUnicode2Ansi=strUnicode2Ansi & chrb(&H & varlow ) & chrb(&H & varhigh )
kalau tidak
strUnicode2Ansi=strUnicode2Ansi & chrb(varasc)
berakhir jika
Berikutnya
Fungsi akhir
Fungsi strAnsi2Unicode(sebagaiIsi)
'Konversi string berkode Ansi menjadi string berkode Unicode
strAnsi2Unicode =
len1=lenb(sebagaiIsi)
jika len1=0 maka keluar dari fungsi
untuk i=1 hingga len1
varchar=midb(sebagaiIsi,i,1)
varasc=ascb(varchar)
jika varasc > 127 maka
strAnsi2Unicode = strAnsi2Unicode & chr(ascw(midb(asContents,i+1,1) & varchar))
saya=saya+1
kalau tidak
strAnsi2Unicode = strAnsi2Unicode & chr(varasc)
berakhir jika
Berikutnya
Fungsi akhir
Fungsi Base64encode (sebagai Isi)
'Base64 mengkodekan string yang dikodekan Ansi
'asContents harus berupa string yang dikodekan ANSI (string biner juga dapat diterima)
Redupkan Posisi
Redupkan Hasil
Redupkan Char1
Redupkan Char2
Redupkan Char3
Redupkan Char4
Redupkan Byte1
Redupkan Byte2
Redupkan Byte3
Redupkan SaveBits1
Redupkan SaveBits2
Redupkan lsGroupBinary
Redupkan Grup64
Redupkan m4,len1,len2
len1=Lenb(sebagaiIsi)
jika len1<1 maka
Kode Base64=
keluar Fungsi
berakhir jika
m3=Len1 Mod 3
Jika M3 > 0 Maka asContents = asContents & String(3-M3, chrb(0))
'Digit tambahan digunakan untuk memudahkan perhitungan
JIKA m3 > 0 MAKA
len1=len1+(3-m3)
len2=len1-3
kalau tidak
len2=len1
berakhir jika
lsHasil=
Untuk lnPosition = 1 Ke len2 Langkah 3
lsGrup64 =
lsGroupBinary = Midb(asContents, lnPosition, 3)
Byte1 = Ascb(Midb(lsGroupBinary, 1, 1)): SaveBits1 = Byte1 Dan 3
Byte2 = Ascb(Midb(lsGroupBinary, 2, 1)): SaveBits2 = Byte2 Dan 15
Byte3 = Ascb(Midb(lsGroupBinary, 3, 1))
Char1 = Midb(sBASE_64_CHARACTERS, ((Byte1 Dan 252) / 4) + 1, 1)
Char2 = Midb(sBASE_64_CHARACTERS, (((Byte2 Dan 240) / 16) Atau (SaveBits1 * 16) Dan &HFF) + 1, 1)
Char3 = Midb(sBASE_64_CHARACTERS, (((Byte3 Dan 192) / 64) Atau (SaveBits2 * 4) Dan &HFF) + 1, 1)
Char4 = Midb(sBASE_64_CHARACTERS, (Byte3 Dan 63) + 1, 1)
lsGroup64 = Char1 & Char2 & Char3 & Char4
lsHasil = lsHasil & lsGroup64
Berikutnya
'Proses karakter terakhir yang tersisa
jika M3 > 0 maka
lsGrup64 =
lsGroupBinary = Midb(asContents, len2+1, 3)
Byte1 = Ascb(Midb(lsGroupBinary, 1, 1)): SaveBits1 = Byte1 Dan 3
Byte2 = Ascb(Midb(lsGroupBinary, 2, 1)): SaveBits2 = Byte2 Dan 15
Byte3 = Ascb(Midb(lsGroupBinary, 3, 1))
Char1 = Midb(sBASE_64_CHARACTERS, ((Byte1 Dan 252) / 4) + 1, 1)
Char2 = Midb(sBASE_64_CHARACTERS, (((Byte2 Dan 240) / 16) Atau (SaveBits1 * 16) Dan &HFF) + 1, 1)
Char3 = Midb(sBASE_64_CHARACTERS, (((Byte3 Dan 192) / 64) Atau (SaveBits2 * 4) Dan &HFF) + 1, 1)
jika M3=1 maka
lsGroup64 = Char1 & Char2 & ChrB(61) & ChrB(61) 'Gunakan tanda = untuk mengisi angka
kalau tidak
lsGroup64 = Char1 & Char2 & Char3 & ChrB(61) 'Gunakan = tanda tangan untuk membuat angkanya
berakhir jika
lsHasil = lsHasil & lsGroup64
berakhir jika
Base64encode = lsHasil
Fungsi Akhir
Fungsi Base64decode (sebagai Isi)
'Konversi string yang disandikan Base64 ke string yang disandikan Ansi
'asContents juga harus berupa string yang dikodekan ANSI (string biner juga dapat diterima)
Redupkan Hasil
Redupkan Posisi
Redupkan lsGroup64, lsGroupBinary
Redupkan Char1, Char2, Char3, Char4
Redupkan Byte1, Byte2, Byte3
Redupkan M4,len1,len2
len1= Lenb(sebagaiIsi)
M4 = len1 Mod 4
jika len1 < 1 atau M4 > 0 maka
'Panjang string harus kelipatan 4
Dekode Base64=
keluar Fungsi
berakhir jika
'Tentukan apakah angka terakhirnya adalah tanda =
'Tentukan apakah angka kedua dari belakang adalah tanda =
'Di sini m4 mewakili jumlah karakter terakhir yang perlu diproses secara terpisah
jika midb(asContents, len1, 1) = chrb(61) maka m4=3
jika midb(asContents, len1-1, 1) = chrb(61) maka m4=2
jika m4 = 0 maka
len2=len1
kalau tidak
len2=len1-4
berakhir jika
Untuk lnPosition = 1 Ke Len2 Langkah 4
lsGroupBinary =
lsGroup64 = Midb(asContents, 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 Dan 48) / 16) Atau (Char1 * 4) Dan &HFF)
Byte2 = lsGroupBinary & Chrb(((Char3 Dan 60) / 4) Atau (Char2 * 16) Dan &HFF)
Byte3 = Chrb((((Char3 Dan 3) * 64) Dan &HFF) Atau (Char4 Dan 63))
lsGroupBinary = Byte1 & Byte2 & Byte3
lsHasil = lsHasil & lsGroupBinary
Berikutnya
'Proses karakter terakhir yang tersisa
jika M4 > 0 maka
lsGroupBinary =
lsGroup64 = Midb(asContents, len2+1, m4) & chrB(65) 'chr(65)=A, dikonversi ke nilai 0
jika M4=2 maka 'Tambahkan 4 digit untuk memudahkan perhitungan
lsGroup64 = lsGroup64 & chrB(65)
berakhir jika
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 Dan 48) / 16) Atau (Char1 * 4) Dan &HFF)
Byte2 = lsGroupBinary & Chrb(((Char3 Dan 60) / 4) Atau (Char2 * 16) Dan &HFF)
Byte3 = Chrb((((Char3 Dan 3) * 64) Dan &HFF) Atau (Char4 Dan 63))
jika M4=2 maka
lsGroupBinary = Byte1
elseif M4=3 maka
lsGroupBinary = Byte1 & Byte2
berakhir jika
lsHasil = lsHasil & lsGroupBinary
berakhir jika
Base64decode = lsHasil
Fungsi Akhir
%>