base64 js加密账号密码

;(function($){

    $.base64 = $.fn.base64 = function (dir, input) {


        var publ = {},

            self = this,

            b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";


        // http://phpjs.org/functions/base64_encode/

        publ.encode = function (data) {

            data = !(self instanceof $) ? data : self.is(':input') ? self.val() : self.text();

            data = unescape(encodeURIComponent( data ));


            if (data === '') return;

            var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,

                ac = 0,

                enc = "",

                tmp_arr = [];


            if (!data) return data;


            do { // pack three octets into four hexets

                o1 = data.charCodeAt(i++);

                o2 = data.charCodeAt(i++);

                o3 = data.charCodeAt(i++);


                bits = o1 << 16 | o2 << 8 | o3;


                h1 = bits >> 18 & 0x3f;

                h2 = bits >> 12 & 0x3f;

                h3 = bits >> 6 & 0x3f;

                h4 = bits & 0x3f;


                // use hexets to index into b64, and append result to encoded string

                tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);

            } while (i < data.length);


            enc = tmp_arr.join('');


            var r = data.length % 3;


            return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);

        };


        // http://phpjs.org/functions/base64_decode/

        publ.decode = function (data) {

            data = !(self instanceof $) ? data : self.is(':input') ? self.val() : self.text();


            var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,

                ac = 0,

                dec = "",

                tmp_arr = [];


            if (!data) return data;


            data += '';


            do { // unpack four hexets into three octets using index points in b64

                h1 = b64.indexOf(data.charAt(i++));

                h2 = b64.indexOf(data.charAt(i++));

                h3 = b64.indexOf(data.charAt(i++));

                h4 = b64.indexOf(data.charAt(i++));


                bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;


                o1 = bits >> 16 & 0xff;

                o2 = bits >> 8 & 0xff;

                o3 = bits & 0xff;


                if (h3 == 64) {

                    tmp_arr[ac++] = String.fromCharCode(o1);

                } else if (h4 == 64) {

                    tmp_arr[ac++] = String.fromCharCode(o1, o2);

                } else {

                    tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);

                }

            } while (i < data.length);


            dec = tmp_arr.join('');


            return decodeURIComponent(escape( dec ));

        };


        return input ? publ[dir](input) : dir ? null : publ;

    };

}(jQuery));

本博客所有文章如无特别注明均为原创。作者:长颈鹿复制或转载请以超链接形式注明转自 SZY
原文地址《base64 js加密账号密码

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)