• Welcome to the eight year blog, I'm glad to meet you at the right age!
  • Due to the theme, QQ login partners will display the default avatar in the comments. Please go to the personal center and upload the avatar again.

Vue.js code for MD5 encryption of text (without plug-ins)

Code Notes barben 2005-30 years ago 1222 views 0 comments

Remember last week when using Baidu translation API, you need to submit the following fields.

Field name type Required parameters describe remarks
q TEXT Y Request translation query UTF-8 encoding
from TEXT Y Translation source language For example: zh Chinese, en English, can be set to auto detection
to TEXT Y Translation language For example: zh Chinese, en English, can not be set to auto detection
appid INT Y APP ID Can be viewed in Baidu translation API management console
salt INT Y random number
Salt (random number) is required for sign (signature), in order to verify whether it has been tampered with in the process.
sign TEXT Y autograph Key value of MDQ + 5

So, how do I encrypt sign to MD5 in vue.js?

(Baidu a lot of methods, are to let us install plug-ins, but I Celeron processor with so many plug-ins ah!!! )

If you don't install plug-ins, you can only write your own code!

Code is a bit long, the bottom also provides the demo download address, you can download it yourself!

usage method:
hex_ MD5 ("I want to encrypt the whole eight books that year")
Pass the content to be encrypted into this method and return the encrypted MD5

 hex_ md5(a) {
    if (a == "") return a;
    return this.rstr2hex(this.rstr_ md5(this.str2rstr_ utf8(a)))
},
hex_ hmac_ md5(a, b) {
    return this.rstr2hex(this.rstr_ hmac_ md5(this.str2rstr_ utf8(a), this.str2rstr_ utf8(b)))
},
md5_ vm_ test() {
    return this.hex_ md5("abc").toLowerCase() == "900150983cd24fb0d6963f7d28e17f72"
},
rstr_ md5(a) {
    return this.binl2rstr(this.binl_ md5(this.rstr2binl(a), a.length * 8))
},
rstr_ hmac_ md5(c, f) {
    var e = this.rstr2binl(c);
    if (e.length > 16) {
        e = this.binl_ md5(e, c.length * 8)
    }
    var a = Array(16),
    d = Array(16);
    for (var b = 0; b < 16; b++) {
        a[b] = e[b] ^ 909522486;
        d[b] = e[b] ^ 1549556828
    }
    var g = this.binl_ md5(a.concat(this.rstr2binl(f)), 512 + f.length * 8);
    return binl2rstr(this.binl_ md5(d.concat(g), 512 + 128))
},
rstr2hex(c) {
    var hexcase;
    try {
        hexcase
    } catch(g) {
        hexcase = 0
    }
    var f = hexcase ? "0123456789ABCDEF": "0123456789abcdef";
    var b = "";
    var a;
    for (var d = 0; d < c.length; d++) {
        a = c.charCodeAt(d); 
        b += f.charAt((a >>> 4) & 15) + f.charAt(a & 15)
    }
    return b
},
str2rstr_ utf8(c) {
    var b = "";
    var d = -1;
    var a, e;
    while (++d < c.length) {
        a = c.charCodeAt(d);
        e = d + 1 < c.length ? c.charCodeAt(d + 1) : 0;
        if (55296 <= a && a <= 56319 && 56320 <= e && e <= 57343) {
            a = 65536 + ((a & 1023) << 10) + (e & 1023);
            d++
        }
        if (a <=  127) {
            b += String.fromCharCode(a)
        } else {
            if (a <= 2047) {
                b += String.fromCharCode(192 | ((a >>> 6) & 31), 128 | (a & 63))
            } else {
                if (a <= 65535) {
                    b += String.fromCharCode(224 | ((a >>> 12) & 15), 128 | ((a >>> 6) & 63), 128 | (a & 63))
                 } else {
                    if (a <= 2097151) {
                        b += String.fromCharCode(240 | ((a >>> 18) & 7), 128 | ((a >>> 12) & 63), 128 | ((a >>> 6) & 63), 128 | (a & 63))
                    }
                }
            }
        }
    }
    return b
},
rstr2binl(b) {
    var a = Array(b.length >> 2);
     for (var c = 0; c < a.length; c++) {
        a[c] = 0
    }
    for (var c = 0; c < b.length * 8; c += 8) {
        a[c >> 5] |= (b.charCodeAt(c / 8) & 255) << (c % 32)
    }
    return a
},
binl2rstr(b) {
    var a = "";
    for (var c = 0; c < b.length * 32;  c += 8) {
        a += String.fromCharCode((b[c >> 5] >>> (c % 32)) & 255)
    }
    return a
},
binl_ md5(p, k) {
    p[k >> 5] |= 128 << ((k) % 32);
    p[(((k + 64) >>> 9) << 4) + 14] = k;
    var o = 1732584193;
    var n = -271733879;
    var m = -1732584194;
    var l = 271733878;
    for (var g = 0; g < p.length; g += 16) {
        var j = o;
        var h = n;
        var f = m;
        var e = l;
        o = this.md5_ ff(o, n, m, l, p[g + 0], 7, -680876936);
        l = this.md5_ ff(l, o, n, m, p[g + 1], 12, -389564586);
        m = this.md5_ ff(m, l, o, n, p[g + 2], 17, 606105819);
        n = this.md5_ ff(n, m, l, o, p[g + 3], 22, -1044525330);
        o = this.md5_ ff(o, n, m, l, p[g + 4], 7, -176418897);
        l = this.md5_ ff(l, o, n, m, p[g + 5], 12, 1200080426);
        m = this.md5_ ff(m, l, o, n, p[g + 6], 17, -1473231341);
        n = this.md5_ ff(n, m, l, o, p[g + 7], 22, -45705983);
        o = this.md5_ ff(o, n, m, l, p[g + 8], 7, 1770035416);
        l = this.md5_ ff(l, o, n, m, p[g + 9], 12, -1958414417);
        m = this.md5_ ff(m, l, o, n, p[g + 10], 17, -42063);
        n = this.md5_ ff(n, m, l, o, p[g + 11], 22, -1990404162);
        o = this.md5_ ff(o, n, m, l, p[g + 12], 7, 1804603682);
        l = this.md5_ ff(l, o, n, m, p[g + 13], 12, -40341101);
        m = this.md5_ ff(m, l, o, n, p[g + 14], 17, -1502002290);
        n = this.md5_ ff(n, m, l, o, p[g + 15], 22, 1236535329);
        o = this.md5_ gg(o, n, m, l, p[g + 1], 5, -165796510);
        l = this.md5_ gg(l, o, n, m, p[g + 6], 9, -1069501632);
        m = this.md5_ gg(m, l, o, n, p[g + 11], 14, 643717713);
        n = this.md5_ gg(n, m, l, o, p[g + 0], 20, -373897302);
        o = this.md5_ gg(o, n, m, l, p[g + 5], 5, -701558691);
        l = this.md5_ gg(l, o, n, m, p[g + 10], 9, 38016083);
        m = this.md5_ gg(m, l, o, n, p[g + 15], 14, -660478335);
        n = this.md5_ gg(n, m, l, o, p[g + 4], 20, -405537848);
        o = this.md5_ gg(o, n, m, l, p[g + 9], 5, 568446438);
        l = this.md5_ gg(l, o, n, m, p[g + 14], 9, -1019803690);
        m = this.md5_ gg(m, l, o, n, p[g + 3], 14, -187363961);
        n = this.md5_ gg(n, m, l, o, p[g + 8], 20, 1163531501);
        o = this.md5_ gg(o, n, m, l, p[g + 13], 5, -1444681467);
        l = this.md5_ gg(l, o, n, m, p[g + 2], 9, -51403784);
        m = this.md5_ gg(m, l, o, n, p[g + 7], 14, 1735328473);
        n = this.md5_ gg(n, m, l, o, p[g + 12], 20, -1926607734);
        o = this.md5_ hh(o, n, m, l, p[g + 5], 4, -378558);
        l = this.md5_ hh(l, o, n, m, p[g + 8], 11, -2022574463);
        m = this.md5_ hh(m, l, o, n, p[g + 11], 16, 1839030562);
        n = this.md5_ hh(n, m, l, o, p[g + 14], 23, -35309556);
        o = this.md5_ hh(o, n, m, l, p[g + 1], 4, -1530992060);
        l = this.md5_ hh(l, o, n, m, p[g + 4], 11, 1272893353);
        m = this.md5_ hh(m, l, o, n, p[g + 7], 16, -155497632);
        n = this.md5_ hh(n, m, l, o, p[g + 10], 23, -1094730640);
        o = this.md5_ hh(o, n, m, l, p[g + 13], 4, 681279174);
        l = this.md5_ hh(l, o, n, m, p[g + 0], 11, -358537222);
        m = this.md5_ hh(m, l, o, n, p[g + 3], 16, -722521979);
        n = this.md5_ hh(n, m, l, o, p[g + 6], 23, 76029189);
        o = this.md5_ hh(o, n, m, l, p[g + 9], 4, -640364487);
        l = this.md5_ hh(l, o, n, m, p[g + 12], 11, -421815835);
        m = this.md5_ hh(m, l, o, n, p[g + 15], 16, 530742520);
        n = this.md5_ hh(n, m, l, o, p[g + 2], 23, -995338651);
        o = this.md5_ ii(o, n, m, l, p[g + 0], 6, -198630844);
        l = this.md5_ ii(l, o, n, m, p[g + 7], 10, 1126891415);
        m = this.md5_ ii(m, l, o, n, p[g + 14], 15, -1416354905);
        n = this.md5_ ii(n, m, l, o, p[g + 5], 21, -57434055);
        o = this.md5_ ii(o, n, m, l, p[g + 12], 6, 1700485571);
        l = this.md5_ ii(l, o, n, m, p[g + 3], 10, -1894986606);
        m = this.md5_ ii(m, l, o, n, p[g + 10], 15, -1051523);
        n = this.md5_ ii(n, m, l, o, p[g + 1], 21, -2054922799);
        o = this.md5_ ii(o, n, m, l, p[g + 8], 6, 1873313359);
        l = this.md5_ ii(l, o, n, m, p[g + 15], 10, -30611744);
        m = this.md5_ ii(m, l, o, n, p[g + 6], 15, -1560198380);
        n = this.md5_ ii(n, m, l, o, p[g + 13], 21, 1309151649);
        o = this.md5_ ii(o, n, m, l, p[g + 4], 6, -145523070);
        l = this.md5_ ii(l, o, n, m, p[g + 11], 10, -1120210379);
        m = this.md5_ ii(m, l, o, n, p[g + 2], 15, 718787259);
        n = this.md5_ ii(n, m, l, o, p[g + 9], 21, -343485551);
        o = this.safe_ add(o, j);
        n = this.safe_ add(n, h);
        m = this.safe_ add(m, f);
        l = this.safe_ add(l, e)
    }
    return Array(o, n, m, l)
},
md5_ cmn(h, e, d, c, g, f) {
    return this.safe_ add(this.bit_ rol(this.safe_ add(this.safe_ add(e, h), this.safe_ add(c, f)), g), d)
},
md5_ ff(g, f, k, j, e, i, h) {
    return this.md5_ cmn((f & k) | ((~f) & j), g, f, e, i, h)
},
md5_ gg(g, f, k, j, e, i, h) {
    return this.md5_ cmn((f & j) | (k & (~j)), g, f, e, i, h)
},
md5_ hh(g, f, k, j, e, i, h) {
    return this.md5_ cmn(f ^ k ^ j, g, f, e, i, h)
},
md5_ ii(g, f, k, j, e, i, h) {
    return this.md5_ cmn(k ^ (f | (~j)), g, f, e, i, h)
},
safe_ add(a, d) {
    var c = (a & 65535) + (d & 65535);
    var b = (a >> 16) + (d >> 16) + (c >> 16);
    return (b << 16) | (c & 65535)
},
bit_ rol(a, b) {
    return (a << b) | (a >>> (32 - b))
}

Demo download address

[download locally]


Eight blogs that year, we've been there all the time
If the author does not indicate the original article, please indicate the link and source of this article
Vue.js code for MD5 encryption of text (without plug-in) - https://www.barben.cn/code/504.html
Like it( ten )
Post my comments
Cancel comment
expression Mapping Bold Strikethrough Center Italics

You need to bring your nickname and email with you in the year of eight!

  • Nickname (required)
  • Email address (required)
  • website