1.フロントJS
1 <= "テキスト/ javascriptの"スクリプトタイプ> 2 $(関数(){ 3 $( "#のBTN")。クリックしてください(関数(){ 4 VARユーザ名= encode64($( "#ユーザー名")。valを() ); // 对数据加密 5 のvarパスワード= encode64($( "#パスワード" ).val()); 6 $( "#ユーザー名" ).val(ユーザー名); 7 $( "#パスワード" ).val (パスワード); 8 document.fm.submit(); // フォーム名を形成するためのFM 。9 }) 10 }) 11は、 12であります // BASE64加密开始 13 VAR keyStr = "ABCDEFGHIJKLMNOP" + "QRSTUVWXYZabcdef" + "ghijklmnopqrstuv" 14 + "wxyz0123456789 + /" + "=" 。 15 16 関数encode64(入力){ 17 18 VaRの出力= "" ; 19件 のvar CHR1、ChR2は、CHR 3 = "" ; 20 のvar ENC1、ENC2、ENC3、enc4 = "" ; 21 VAR iが0 = 。 22 行う{ 23 CHR 1 = input.charCodeAt(I ++ )。 ); 25 CHR3 = input.charCodeAt(I ++ )。 26 ENC1 = CHR 1 >> 2 。 27 ENC2 =((CHR 1&3)<< 4)| (ChR2を>> 4 ); 28 ENC3 =((ChR2を&15)<< 2)| (CHR3 >> 6 )。 29 enc4 = CHR 3&63 。 30 であれば(ますisNaN(ChR2を)){ 31 ENC3 = enc4 = 64 。 32 } そう であれば(ますisNaN(CHR 3)){ 33 enc4 = 64 。 34 } 35 出力=出力+ keyStr.charAt(ENC1)+ keyStr.charAt(ENC2) 36 + keyStr.charAt(ENC3)+ keyStr.charAt(enc4)。 37 CHR 1 = ChR2を= CHR 3 = "" ; 38 ENC1 = ENC2 = ENC3 = enc4 = "" ; 39 } ながら(I < input.length)。 40 41 リターン出力。 42 } 43 // BASE64加密结束 44 </ SCRIPT>
2、背景のJavaコード
5 'R'、 'S'、 'T'、 'U'、V ''、 'W'、 'X'、 'Y'、 'Z'、 '0'、 '1'、 '2'、 ' 3' 、 6 '4'、 '5'、 '6'、 '7'、 '8'、 '9'、 '+'、 '/' 、}。 7 8 プライベート静的バイト [] base64DecodeChars = 新しい バイト [] {-1、-1、-1、-1、-1 、 9 -1、-1、-1、-1、-1、-1、-1、-1、 - 1、-1、-1、-1、-1、-1、-1、-1、-1 、 10 -1、-1、-1、-1、-1、-1、-1、-1 、-1、-1、-1、-1、-1、-1、-1、-1、-1 、 11 -1、-1、-1、-1、62、-1、-1、 - 1、63、52、53、54、55、56、57、58、59 、 12 60、61、-1、-1、-1、-1、-1、-1、-1、0、1、 2、3、4、5、6、7、8、9 、 13 10、11、12、13、14、15、16、17、18、19、20、21、22、23、24、25、 - 1 、 14 -1、-1、-1、-1、-1、26、27、28、29、30、31、32、33、34、35、36、37 、 15 38、39、40、41、42、43、44、45、46、47、48、49、50、51、-1、-1、-1 、 16 -1、-1 }。 17 18 / ** 19 *解密 20 * @param STR 21 * @return 22 * / 23 パブリック 静的 バイト[]デコード(文字列str){ 24 バイト []データ= str.getBytes()。 25 INT LEN = data.length。 26 ByteArrayOutputStream BUF = 新しいByteArrayOutputStream(LEN)。 27 int型私= 0 ; 28 INT B1、B2、B3、B4。 29 30 ながら(I < LEN){ 31 行う{ 32 、B1 = base64DecodeChars [データ[I ++ ]。 33 } ながら(I <LEN && B1 == -1 )。 34 であれば(B1 == -1 ){ 35 ブレーク。 36 } 37 38が 行う{ 39 B2 = base64DecodeChars [データ[I ++ ]と、 40 } ながら(I <LEN && B2 == -1 )。 41 もし(B2 == -1 ){ 42 ブレーク。 43 } 44 buf.write((INT)((B1 << 2)|((B2&0x30から)>>> 4 )))。 45 46が 行う{ 47 B3 =データ[I ++ ]。 48 であれば(B3 == 61 ){ 49 リターンbuf.toByteArray()。 50 } 51 B3 = base64DecodeChars [B3]。 52 } ながら(I <LEN && B3 == -1 )。 53 であれば(B3 == -1 ){ 54 ブレーク; 55 } 56 buf.write((INT)(((B2&0x0Fの)<< 4)|((B3&0x3cの)>>> 2 )))。 57 58が 行う{ 59 B4 =データ[I ++ ]。 60 であれば(B4 == 61 ){ 61 リターンbuf.toByteArray()。 62 } 63 B4 = base64DecodeChars [B4]。 64 } ながら(I <LEN && B4 == -1 )。 65 であれば(B4 == -1 ){ 66 ブレーク; 67 } 68 buf.write((INT)(((B3&0×03)<< 6)|。B4)); 69 } 70 リターンbuf.toByteArray(); 71れる } 72 73であり、 74のSystem.out.println(新しい新しい文字列(デコード(ユーザ名))); // デコード()メソッドを使用して復号