この記事では、JSによって実装されたBase64暗号化と復号化について説明します。次のように、参照のために共有してください。
完全なコード:
<html> <head> <title> base64 </title> <スクリプト言語= javascript> var base64encodeChars = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789+/" -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、-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、-1、-1、-1、63、52、53、54、55、55、57、57、57、57、57、57、57、57、57、57、57、57、57、57、57、57、57、57、5 -1, -1, -1, -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, -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); "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、-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、 -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、-1、-1、-1、-1、-1、-1、-1、-1、-1、-1、-1、 -62、 -62、-1、62、 -62、-1、-1、62、-1、-1、-1、62、-1、-1、-1、62、-1、-1、62、-1、-1、62、 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、-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) 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 += "==";壊す; } 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 += "=";壊す; } 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)が返されます。 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)が返されます。 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 >> 12)&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 ++);スイッチ(C >> 4){ケース0:ケース1:ケース2:ケース3:ケース4:ケース5:ケース6:// 0xxxxx Out += str.Charat(I-1);壊す;ケース12:ケース13:// 110x xxxx 10xx xxxx char2 = str.charcodeat(i ++); out += string.fromCharcode(((c&0x1f)<< 6)|(char2&0x3f));壊す;ケース14:// 1110 xxxx 10xxx xxxx 10xx xxxx char2 = str.charcodeat(i ++); char3 = str.charcodeat(i ++); out += string.fromCharcode(((c&0x0f)<< 12)|((char2&0x3f)<< 6)|(((char3&0x3f)<< 0));壊す; }} return out;} function doit(){var f = document.f f.output.value = base64Encode(utf16to8(f.source.value))f.decode.value = utf8to16(base64decode(f.output.value))}} < name = "f">元のコード<br> <textarea name = "source" rows = 4 cols = 60 wrap = "soft"> </textarea> <br> <br> <br> <brad <br> <textarea name = "output" rows = 4 cols = 60 wrap = "soft"> </textarea> <br> <br> <br> <br> <bron wrap = "soft"> </textarea> <br> <br> <input type = button value = "convert" onclick = "doit()"> </form> </body>Base64の暗号化と復号化の場合、このサイトのオンラインツールを参照することもできます。
Base64エンコードおよびデコードツール
より暗号化されたコンテンツと復号化されたコンテンツについては、以下を参照してください。
MD5オンライン暗号化ツール
URLヘキサデシマル暗号化ツール
Thunder、Express、Tornado URL暗号化/復号化ツール
オンラインSHA1暗号化ツール
JavaScriptの詳細については、このサイトのトピックをご覧ください:「JavaScriptの暗号化と復号化スキルの要約」、「JavaScriptのスイッチング特殊効果とスキルの要約」、「JavaScript検索アルゴリズムのスキルの概要」、「Javascriptアニメーションの特殊効果とスキルの要約」の要約「Javascript Animation Animation Special Effects and」アルゴリズムのスキル」、「JavaScriptトラバーサルアルゴリズムとスキルの要約」および「JavaScriptの概要数学的操作の使用」
この記事がみんなのJavaScriptプログラミングに役立つことを願っています。