Portable MD5 Lib.

自己用的库, 动态调用。

Verzia zo dňa 05.03.2014. Pozri najnovšiu verziu.

Tento skript by nemal byť nainštalovaný priamo. Je to knižnica pre ďalšie skripty, ktorú by mali používať cez meta príkaz // @require https://update.greasyfork.org/scripts/130/364/Portable%20MD5%20Lib.js

// ==UserScript==
// @name         Portable MD5 Lib.
// @namespace    http://jixun.org/
// @version      0.1
// @description  自己用的库, 动态调用。
// @copyright    2013+, Jixun.Moe


// Note: Please don't install this script to your browser.
// 注意: 请不要安装该脚本
// Dev: Refer this script using HTTPS portal.
// 开发者: 包含该脚本请使用 HTTPS 连接.


// ==/UserScript==



// MD5 Function (Min & Portable)
// Usage : md5 (<string> SourceText)
// Return: Lower-case MD5.
// Source: http://pajhome.org.uk/crypt/md5/md5.html

var md5 = (new (function (){function k(f,b,c,d,e,g,p){return l(m(l(l(f,b&c|~b&d),l(e,p)),g),b)}function n(f,b,c,d,e,g,p){return l(m(l(l(f,b&d|c&~d),l(e,p)),g),b)}function q(f,b,c,d,e,g,p){return l(m(l(l(f,b^c^d),l(e,p)),g),b)}function r(f,b,c,d,e,g,p){return l(m(l(l(f,c^(b|~d)),l(e,p)),g),b)}function l(f,b){var c=(f&65535)+(b&65535);return(f>>16)+(b>>16)+(c>>16)<<16|c&65535}function m(f,b){return f<<b|f>>>32-b}this.calc=function(f){for(var b="",c=-1,d,e;++c<f.length;)d=f.charCodeAt(c),e=c+1<f.length?f.charCodeAt(c+1):0,55296<=d&&56319>=d&&56320<=e&&57343>=e&&(d=65536+((d&1023)<<10)+(e&1023),c++),127>=d?b+=String.fromCharCode(d):2047>=d?b+=String.fromCharCode(192|d>>>6&31,128|d&63):65535>=d?b+=String.fromCharCode(224|d>>>12&15,128|d>>>6&63,128|d&63):2097151>=d&&(b+=String.fromCharCode(240|d>>>18&7,128|d>>>12&63,128|d>>>6&63,128|d&63));f=Array(b.length>>2);for(c=0;c<f.length;c++)f[c]=0;for(c=0;c<8*b.length;c+=8)f[c>>5]|=(b.charCodeAt(c/8)&255)<<c%32;b=8*b.length;f[b>>5]|=128<<b%32;f[(b+64>>>9<<4)+14]=b;b=1732584193;c=-271733879;d=-1732584194;e=271733878;for(var g=0;g<f.length;g+=16){var p=b,s=c,t=d,u=e,b=k(b,c,d,e,f[g+0],7,-680876936);e=k(e,b,c,d,f[g+1],12,-389564586);d=k(d,e,b,c,f[g+2],17,606105819);c=k(c,d,e,b,f[g+3],22,-1044525330);b=k(b,c,d,e,f[g+4],7,-176418897);e=k(e,b,c,d,f[g+5],12,1200080426);d=k(d,e,b,c,f[g+6],17,-1473231341);c=k(c,d,e,b,f[g+7],22,-45705983);b=k(b,c,d,e,f[g+8],7,1770035416);e=k(e,b,c,d,f[g+9],12,-1958414417);d=k(d,e,b,c,f[g+10],17,-42063);c=k(c,d,e,b,f[g+11],22,-1990404162);b=k(b,c,d,e,f[g+12],7,1804603682);e=k(e,b,c,d,f[g+13],12,-40341101);d=k(d,e,b,c,f[g+14],17,-1502002290);c=k(c,d,e,b,f[g+15],22,1236535329);b=n(b,c,d,e,f[g+1],5,-165796510);e=n(e,b,c,d,f[g+6],9,-1069501632);d=n(d,e,b,c,f[g+11],14,643717713);c=n(c,d,e,b,f[g+0],20,-373897302);b=n(b,c,d,e,f[g+5],5,-701558691);e=n(e,b,c,d,f[g+10],9,38016083);d=n(d,e,b,c,f[g+15],14,-660478335);c=n(c,d,e,b,f[g+4],20,-405537848);b=n(b,c,d,e,f[g+9],5,568446438);e=n(e,b,c,d,f[g+14],9,-1019803690);d=n(d,e,b,c,f[g+3],14,-187363961);c=n(c,d,e,b,f[g+8],20,1163531501);b=n(b,c,d,e,f[g+13],5,-1444681467);e=n(e,b,c,d,f[g+2],9,-51403784);d=n(d,e,b,c,f[g+7],14,1735328473);c=n(c,d,e,b,f[g+12],20,-1926607734);b=q(b,c,d,e,f[g+5],4,-378558);e=q(e,b,c,d,f[g+8],11,-2022574463);d=q(d,e,b,c,f[g+11],16,1839030562);c=q(c,d,e,b,f[g+14],23,-35309556);b=q(b,c,d,e,f[g+1],4,-1530992060);e=q(e,b,c,d,f[g+4],11,1272893353);d=q(d,e,b,c,f[g+7],16,-155497632);c=q(c,d,e,b,f[g+10],23,-1094730640);b=q(b,c,d,e,f[g+13],4,681279174);e=q(e,b,c,d,f[g+0],11,-358537222);d=q(d,e,b,c,f[g+3],16,-722521979);c=q(c,d,e,b,f[g+6],23,76029189);b=q(b,c,d,e,f[g+9],4,-640364487);e=q(e,b,c,d,f[g+12],11,-421815835);d=q(d,e,b,c,f[g+15],16,530742520);c=q(c,d,e,b,f[g+2],23,-995338651);b=r(b,c,d,e,f[g+0],6,-198630844);e=r(e,b,c,d,f[g+7],10,1126891415);d=r(d,e,b,c,f[g+14],15,-1416354905);c=r(c,d,e,b,f[g+5],21,-57434055);b=r(b,c,d,e,f[g+12],6,1700485571);e=r(e,b,c,d,f[g+3],10,-1894986606);d=r(d,e,b,c,f[g+10],15,-1051523);c=r(c,d,e,b,f[g+1],21,-2054922799);b=r(b,c,d,e,f[g+8],6,1873313359);e=r(e,b,c,d,f[g+15],10,-30611744);d=r(d,e,b,c,f[g+6],15,-1560198380);c=r(c,d,e,b,f[g+13],21,1309151649);b=r(b,c,d,e,f[g+4],6,-145523070);e=r(e,b,c,d,f[g+11],10,-1120210379);d=r(d,e,b,c,f[g+2],15,718787259);c=r(c,d,e,b,f[g+9],21,-343485551);b=l(b,p);c=l(c,s);d=l(d,t);e=l(e,u)}f=[b,c,d,e];b="";for(c=0;c<32*f.length;c+=8)b+=String.fromCharCode(f[c>>5]>>>c%32&255);f=b;b="0123456789abcdef";c="";for(e=0;e<f.length;e++)d=f.charCodeAt(e),c+=b.charAt(d>>>4&15)+b.charAt(d&15);return c}})()).calc;