md5使用

md5使用

脚本引入

# 欢迎使用Markdown编辑器

命令安装
1 cnpm install --save js-base64
2 cnpm install --save js-md5
项目引用
1 import md5 from ‘js-md5’;
2 let Base64 = require(‘js-base64’).Base64;
项目中使用
base64:

  1. Base64.encode(‘dankogai’); // ZGFua29nYWk=
  2. Base64.encode(‘小飼弾’); // 5bCP6aO85by+
  3. Base64.encodeURI(‘小飼弾’); // 5bCP6aO85by- 5
  4. Base64.decode(‘ZGFua29nYWk=’); // dankogai
  5. Base64.decode(‘5bCP6aO85by+’); // 小飼弾
  6. // note .decodeURI() is unnecessary since it accepts both flavors
  7. Base64.decode(‘5bCP6aO85by-’); // 小飼弾

md5.js

md5(’’); // d41d8cd98f00b204e9800998ecf8427e
md5(‘The quick brown fox jumps over the lazy dog’); // 9e107d9d372bb6826bd81d3542a419d6
md5(‘The quick brown fox jumps over the lazy dog.’); // e4d909c290d0fb1ca068ffaddf22cbd0

// It also supports UTF-8 encoding
md5(‘中文’); // a7bac2239fcdcb3a067903d8077c4a07

// It also supports byte Array, Uint8Array, ArrayBuffer
md5([]); // d41d8cd98f00b204e9800998ecf8427e
md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e

// Different output
md5(’’); // d41d8cd98f00b204e9800998ecf8427e
md5.hex(’’); // d41d8cd98f00b204e9800998ecf8427e
md5.array(’’); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126]
md5.digest(’’); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126]
md5.arrayBuffer(’’); // ArrayBuffer
md5.buffer(’’); // ArrayBuffer, deprecated, This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.

代码生成

<head>
    <meta charset="UTF-8">
    <title></title>
    <!--1.引入jq插件-->
    <script src="http://code.jquery.com/jquery-1.4.1.min.js"></script>
</head>

<body>
</body>
<script type="text/javascript">
    //2.js代码
    var b = new Base64(),
        str1 = b.encode("audio");//加密
    console.log(str1);
    var str2 = 'eyJzdWIiOiJlYWExZjFiNjMzMDQ0N2Y4OTRmYjIwMGIxZTMxYzNmZiIsInVuaW9uSWQiOiIiLCJpYXQiOjE1MTU3NTE0MDk1OTMsIm9wZW5JZCI6IiJ9',
        str2 = b.decode(str2),//解密
        JsonStr = $.parseJSON(str2);//这里解密后是一个字符串对象,使用jq转化为json对象
    console.log(JsonStr);

    /**
     *
     *  Base64 encode / decode
     *
     *  @author haitao.tu
     *  @date   2010-04-26
     *  @email  tuhaitao@foxmail.com
     *
     */
    //3.base64封装的函数
    function Base64() {

        // private property
        _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

        // public method for encoding
        this.encode = function(input) {
            var output = "";
            var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
            var i = 0;
            input = _utf8_encode(input);
            while(i < input.length) {
                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);
            }
            return output;
        }

        // public method for decoding
        this.decode = function(input) {
            var output = "";
            var chr1, chr2, chr3;
            var enc1, enc2, enc3, enc4;
            var i = 0;
            input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
            while(i < input.length) {
                enc1 = _keyStr.indexOf(input.charAt(i++));
                enc2 = _keyStr.indexOf(input.charAt(i++));
                enc3 = _keyStr.indexOf(input.charAt(i++));
                enc4 = _keyStr.indexOf(input.charAt(i++));
                chr1 = (enc1 << 2) | (enc2 >> 4);
                chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
                chr3 = ((enc3 & 3) << 6) | enc4;
                output = output + String.fromCharCode(chr1);
                if(enc3 != 64) {
                    output = output + String.fromCharCode(chr2);
                }
                if(enc4 != 64) {
                    output = output + String.fromCharCode(chr3);
                }
            }
            output = _utf8_decode(output);
            return output;
        }

        // private method for UTF-8 encoding
        _utf8_encode = function(string) {
            string = string.replace(/\r\n/g, "\n");
            var utftext = "";
            for(var n = 0; n < string.length; n++) {
                var c = string.charCodeAt(n);
                if(c < 128) {
                    utftext += String.fromCharCode(c);
                } else if((c > 127) && (c < 2048)) {
                    utftext += String.fromCharCode((c >> 6) | 192);
                    utftext += String.fromCharCode((c & 63) | 128);
                } else {
                    utftext += String.fromCharCode((c >> 12) | 224);
                    utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                    utftext += String.fromCharCode((c & 63) | 128);
                }

            }
            return utftext;
        }

        // private method for UTF-8 decoding
        _utf8_decode = function(utftext) {
            var string = "";
            var i = 0;
            var c = c1 = c2 = 0;
            while(i < utftext.length) {
                c = utftext.charCodeAt(i);
                if(c < 128) {
                    string += String.fromCharCode(c);
                    i++;
                } else if((c > 191) && (c < 224)) {
                    c2 = utftext.charCodeAt(i + 1);
                    string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                    i += 2;
                } else {
                    c2 = utftext.charCodeAt(i + 1);
                    c3 = utftext.charCodeAt(i + 2);
                    string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                    i += 3;
                }
            }
            return string;
        }
    }
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值