<!doctype HTML PUBLIC "-//w3c//dtd HTML 4.01 transitional//en" "Http://www.w3.org/tr/html4/loose.dtd" > <meta http-equiv= "Content-type" content= "text/html; charset=gb2312 "> <title>base64 Coded Encryption </title>
<body> <table width= "773" border= "0" align= "center" cellpadding= "0" cellspacing= "0" > <tr> <td> <script language=javascript> var base64encodechars = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789+/"; var base64decodechars = new Array ( -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1, 1,-1,,-62, 1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,-1,-1,-1,-1,-1,-1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,-1,-1,-1,-1,-1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,-1,-1,-1,-1,-1); function Base64Encode (str) { var out, I, Len; var C1, C2, C3; len = str.length; i = 0; out = ""; while (I < Len) { C1 = Str.charcodeat (i++) & 0xFF; if (i = = len) { Out + = Base64encodechars.charat (C1 >> 2); Out + = Base64encodechars.charat ((C1 & 0x3) << 4); Out + = "= ="; Break } C2 = Str.charcodeat (i++); if (i = = len) { Out + = Base64encodechars.charat (C1 >> 2); Out + + Base64encodechars.charat ((C1 & 0x3) << 4) | ((C2 & 0xf0) >> 4)); Out + = Base64encodechars.charat ((C2 & 0xf) << 2); Out + = "="; Break } C3 = Str.charcodeat (i++); Out + = Base64encodechars.charat (C1 >> 2); Out + + Base64encodechars.charat ((C1 & 0x3) << 4) | ((C2 & 0xf0) >> 4)); Out + + Base64encodechars.charat ((C2 & 0xf) << 2) | ((C3 & 0xc0) >>6)); Out + = Base64encodechars.charat (C3 & 0x3f); } return out; } function Base64decode (str) { var C1, C2, C3, C4; var i, Len, out; len = str.length; i = 0; out = ""; while (I < Len) { * C1 * * do { C1 = Base64decodechars[str.charcodeat (i++) & 0xFF]; while (I < len && C1 = = 1); if (C1 = = 1) Break * C2 * * do { C2 = Base64decodechars[str.charcodeat (i++) & 0xFF]; while (i < len && C2 = = 1); if (C2 = = 1) Break Out + + string.fromcharcode (C1 << 2) | ((C2 & 0x30) >> 4)); * C3 * * do { C3 = Str.charcodeat (i++) & 0xFF; if (C3 = 61) return out; C3 = Base64decodechars[c3]; while (I < Len && C3 = = 1); if (C3 = = 1) Break Out + + String.fromCharCode ((C2 & 0xf) << 4) | ((C3 & 0x3c) >> 2)); * C4 * * do { C4 = str.charcodeat (i++) & 0xFF; if (C4 = 61) return out; C4 = base64decodechars[c4]; while (i < len && C4 = = 1); if (C4 = = 1) Break Out + = String.fromCharCode ((C3 & 0x03) << 6) | c4); } return out; } function Utf16to8 (str) { var out, I, Len, C; out = ""; len = str.length; for (i = 0; i < len; i++) { c = str.charcodeat (i); if ((c >= 0x0001) && (c <= 0x007f)) { Out + + Str.charat (i); else if (C > 0x07ff) { Out + + string.fromcharcode (0xe0 | ((c >>) & 0x0f)); Out + + string.fromcharcode (0x80 | ((c >> 6) & 0x3f)); Out + + string.fromcharcode (0x80 | ((c >> 0) & 0x3f)); } else { Out + + string.fromcharcode (0xc0 | ((c >> 6) & 0x1f)); Out + + string.fromcharcode (0x80 | ((c >> 0) & 0x3f)); } } return out; } function Utf8to16 (str) { var out, I, Len, C; var char2, Char3; out = ""; len = str.length; i = 0; while (I < Len) { c = str.charcodeat (i++); Switch (c >> 4) { Case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7: 0xxxxxxx Out + = Str.charat (i-1); Break Case 12:case 13: 110x xxxx 10xx xxxx CHAR2 = Str.charcodeat (i++); Out + + String.fromCharCode ((C & 0x1f) << 6) | (Char2 & 0x3f)); Break Case 14: 1110 xxxx 10xx xxxx 10xx xxxx CHAR2 = Str.charcodeat (i++); CHAR3 = Str.charcodeat (i++); Out + + String.fromCharCode ((C & 0x0f) << 12) | ((Char2 & 0x3f) << 6) | ((Char3 & 0x3f) << 0)); Break } } return out; } function doit () { var f = document.f F.output.value = Base64Encode (Utf16to8 (F.source.value)) F.decode.value = Utf8to16 (Base64decode (F.output.value)) } </script> <H1 align= "Center" >BASE64 encoded encryption <form name= "F" > Original Code <br> <textarea name= "source" rows=4 cols=60 wrap= "soft" ></textarea><br><br> Base64 encode<br> <textarea name= "Output" rows=4 cols=60 wrap= "soft" ></textarea><br><br> Base64 decode<br> <textarea name= "decode" rows=4 cols=60 wrap= "soft" ></textarea><br><br> <input Type=button value= "Convert" onclick= "doit ()" > </form> </td> </tr> </table> </body>
|