表单数据base64编码提交

作者: 如弦 | 来源:发表于2016-11-25 20:08 被阅读37次

    前端数据加密是个比较有争议的问题。从安全的角度来看,涉及到敏感信息的数据提交,必须不能是明文。从技术的角度来看,前端加密可有可无,因为在浏览器端,所有的代码都会暴露给用户,不论用什么方式加密,都能看到其加密的算法。但是,在没有使用https的情况下,前端编码数据也可以暂时用一下。

    如使用base64编码,可以直接在页面引入相应的库。
    地址:js-base64

    示例:

    Base64.encode('dankogai');  // ZGFua29nYWk=
    Base64.encode('小飼弾');    // 5bCP6aO85by+
    Base64.encodeURI('小飼弾'); // 5bCP6aO85by-
    Base64.decode('ZGFua29nYWk=');  // dankogai
    Base64.decode('5bCP6aO85by+');  // 小飼弾
    Base64.decode('5bCP6aO85by-');  // 小飼弾
    

    拼装数据说明:

    var ajax_data += "a=" + 123;
    ajax_data += "&b=" + '1@@@dwddc&&*';
    ajax_data = Base64.encode(ajax_data);
    $.ajax({
        type: 'POST',
        url: '',
        data: ajax_data
    });
    

    后端解析,以python为例:

    import base64
    from urllib import unquote
    
    data_res = {}
    ajax_data = base64.b64decode(request.POST.get('ajax_data') or '')
    #base64编码时的提交逻辑
    if ajax_data:
        ajax_data_arr = ajax_data.split('&')
        #将字符串转为字典格式
        for item in ajax_data_arr:
            temp = item.split('=')
            data_res[temp[0]] = unquote(temp[1])
    

    在文件头部引入相应的库。unquote 用来解析urlencode后的数据,否则汉字解析会出问题。

    相关文章

      网友评论

        本文标题:表单数据base64编码提交

        本文链接:https://www.haomeiwen.com/subject/xodwpttx.html