لقد قام محرر Script House بمشاركة العديد من رموز وظائف التشفير وفك التشفير ASP BASE64 معك من قبل، ومع ذلك، هناك بعض المشكلات في عملية الاستخدام الفعلي. والآن سأعيد تنظيمها.
الكود الأساسي:
<% ' OPTION EXPLICITconst BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"dim newlinedim Base64EncMap(63)dim Base64DecMap(127)'وظيفة التهيئة PUBLIC SUB initCodecs()' تهيئة المتغيرات السطر الجديد = "<P>" & chr(13) & chr(10)dim max, idxmax = len(BASE_64_MAP_INIT) for idx = 0 إلى max - 1Base64EncMap(idx) = mid(BASE_64_MAP_INIT, idx + 1, 1) nextfor idx = 0 إلى الحد الأقصى - 1Base64DecMap(ASC(Base64EncMap(idx))) = idxnextEND SUB'Base64 وظيفة التشفير وظيفة عامة base64Encode(plain)if len(plain) = 0 ثمbase64Encode = ""exit functionend ifdim ret, ndx, by3, first, Second,thirdby3 = ( لين (عادي) / 3) * 3ndx = 1do بينما ndx <= by3first = asc(mid(plain, ndx+0, 1))الثانية = asc(mid(plain, ndx+1, 1))third = asc(mid(plain, ndx+2, 1)) ret = ret & Base64EncMap( (الأول / 4) و 63 ) ret = ret & Base64EncMap( ((الأول * 16) و 48) + ((الثاني / 16) و 15 ) )ret = ret & Base64EncMap( ((الثاني * 4) و 60) + ((الثالث / 64) و 3 ) )ret = ret & Base64EncMap( الثالث و 63)ndx = ndx + 3loopif by3 < len(plain) ثمfirst = asc(mid(plain, ndx+0, 1))ret = ret & Base64EncMap( (الأول / 4) و 63 )if (len(plain) MOD 3 ) = 2 thesec = asc(mid(plain, ndx+1, 1))ret = ret & Base64EncMap( ( (الأول * 16) و48) + ((الثاني / 16) و15 ) )ret = ret & Base64EncMap( ((الثاني * 4) و60) )elseret = ret & Base64EncMap( (الأول * 16) و 48)ret = ret '& "=end ifret = ret '& "=end ifbase64Encode = retEND FUNCTION'Base64 وظيفة فك التشفير الوظيفة العامة base64Decode(scrambled)if len(scrambled) = 0 thenbase64Decode = ""الخروج من الوظيفة ifdim realLenrealLen = len(scrambled)do while mid(scrambled, realLen, 1) = "=realLen = realLen - 1loopdim ret, ndx, by4, first, الثاني, الثالث, fourret = ""by4 = (realLen / 4) * 4ndx = 1do بينما ndx <= by4first = Base64DecMap(asc(mid(scrambled, ndx+0, 1))) Second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))third = Base64DecMap(asc(mid(scrambled, ndx+2, 1) ))الرابع = Base64DecMap(asc(mid(scrambled, ndx+3, 1)))ret = ret & chr( ((الأول * 4) و 255) + ((الثاني / 16) و 3)) ret = ret & chr( ((الثاني * 16) و 255) + ((الثالث / 4) و 15)) ret = ret & chr( ((الثالث * 64) و 255) + (الرابع و 63))ndx = ndx + 4loopif ndx < realLen ثم الأول = Base64DecMap(asc(mid(scrambled, ndx+0, 1))) Second = Base64DecMap(asc(mid(scrambled, ndx+1, 1))))ret = ret & chr( ((first * 4) و 255) + ((الثانية / 16) و 3)) إذا كان realLen MOD 4 = 3 ثمالثالث = Base64DecMap(asc(mid(scrambled,ndx+2,1)))ret = ret & chr( ((الثانية * 16) AND 255) + ((الثالث / 4) AND 15))end ifend ifbase64Decode = retEND الوظيفة%>
كيفية الاستخدام:
' تهيئة الاتصال initCodecsResponse.Write(base64Encode("السلسلة التي أريد تشفيرها في Script Home"))Response.Write(base64Decode("bWFyczIwMTAwMjIw0"))