zoukankan      html  css  js  c++  java
  • js加密参数传给后台,后台解密base64

    前台js

    // base64加密开始
    var keyStr = "ABCDEFGHIJKLMNOP" + "QRSTUVWXYZabcdef" + "ghijklmnopqrstuv"
                    + "wxyz0123456789+/" + "=";
    
    function encode64(input) {
            var output = "";
            var chr1, chr2, chr3 = "";
            var enc1, enc2, enc3, enc4 = "";
            var i = 0;
            do {
                    chr1 = input.charCodeAt(i++);
                    chr2 = input.charCodeAt(i++);
                    chr3 = input.charCodeAt(i++);
                    enc1 = chr1 >> 2;
                    enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
                    enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
                    enc4 = chr3 & 63;
                    if (isNaN(chr2)) {
                            enc3 = enc4 = 64;
                    } else if (isNaN(chr3)) {
                            enc4 = 64;
                    }
                    output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2)
                                    + keyStr.charAt(enc3) + keyStr.charAt(enc4);
                    chr1 = chr2 = chr3 = "";
                    enc1 = enc2 = enc3 = enc4 = "";
            } while (i < input.length);
    
            return output;
    }
    // base64加密结束
    // 提交from到答题页面
    function mfzsub(){
        var uri = $('#mfz').attr('action');
        inputhide();
        if(getexport() == "IE"){
            window.open('../'+uri+'?PAPERBANK_ID='+encode64($('#PAPERBANK_ID').val())+'&ORDERID='+encode64($('#ORDERID').val())+"&CLASSTYPE=" + encodeURI(encodeURI($('#CLASSTYPE').val())) + "&title=" + $('#title').val() +"&type=" + $('#type').val(),'');
        }else{
            window.open(uri+'?PAPERBANK_ID='+encode64($('#PAPERBANK_ID').val())+'&ORDERID='+encode64($('#ORDERID').val())+"&CLASSTYPE=" + encodeURI(encodeURI($('#CLASSTYPE').val())) + "&title=" + $('#title').val() +"&type=" + $('#type').val(),'');
        }
        
    }

    后台java处理

    pd.put("CLASSTYPE", URLDecoder.decode(pd.getString("CLASSTYPE")));
                pd.put("PAPERBANK_ID", Base.decode(pd.getString("PAPERBANK_ID")));
    //            pd.put("title", URLDecoder.decode(pd.getString("title")));
    //            pd.put("type", URLDecoder.decode(pd.getString("type")));
                pd.put("ORDERID", Base.decode(pd.getString("ORDERID")));

    base.java

    package com.fh.util;
    
    import java.io.ByteArrayOutputStream;
    
    public class Base {
    
        private static byte[] base64DecodeChars = new byte[] { -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, 63, 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 };
    
        /**
         * 解密
         * 
         * @param str
         * @return
         */
        public static String decode(String str) {
            byte[] data = str.getBytes();
            int len = data.length;
            ByteArrayOutputStream buf = new ByteArrayOutputStream(len);
            int i = 0;
            int b1, b2, b3, b4;
    
            while (i < len) {
                do {
                    b1 = base64DecodeChars[data[i++]];
                } while (i < len && b1 == -1);
                if (b1 == -1) {
                    break;
                }
    
                do {
                    b2 = base64DecodeChars[data[i++]];
                } while (i < len && b2 == -1);
                if (b2 == -1) {
                    break;
                }
                buf.write((int) ((b1 << 2) | ((b2 & 0x30) >>> 4)));
    
                do {
                    b3 = data[i++];
                    if (b3 == 61) {
                        return new String(buf.toByteArray());
                    }
                    b3 = base64DecodeChars[b3];
                } while (i < len && b3 == -1);
                if (b3 == -1) {
                    break;
                }
                buf.write((int) (((b2 & 0x0f) << 4) | ((b3 & 0x3c) >>> 2)));
    
                do {
                    b4 = data[i++];
                    if (b4 == 61) {
                        return new String(buf.toByteArray());
                    }
                    b4 = base64DecodeChars[b4];
                } while (i < len && b4 == -1);
                if (b4 == -1) {
                    break;
                }
                buf.write((int) (((b3 & 0x03) << 6) | b4));
            }
            return new String(buf.toByteArray());
        }
    
    }
  • 相关阅读:
    洛谷—— P2234 [HNOI2002]营业额统计
    BZOJ——3555: [Ctsc2014]企鹅QQ
    CodeVs——T 4919 线段树练习4
    python(35)- 异常处理
    August 29th 2016 Week 36th Monday
    August 28th 2016 Week 36th Sunday
    August 27th 2016 Week 35th Saturday
    August 26th 2016 Week 35th Friday
    August 25th 2016 Week 35th Thursday
    August 24th 2016 Week 35th Wednesday
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/6046352.html
Copyright © 2011-2022 走看看