Created
March 19, 2017 15:11
-
-
Save LeonardoCiaccio/ef4f4f4e260ae331235890e6d02bbdab to your computer and use it in GitHub Desktop.
Bookmarklet Password By File
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MD5 Lib, very fast, https://github.com/satazor/js-spark-md5 | |
(function(factory){if(typeof exports==="object"){module.exports=factory()}else if(typeof define==="function"&&define.amd){define(factory)}else{var glob;try{glob=window}catch(e){glob=self}glob.SparkMD5=factory()}})(function(undefined){"use strict";var add32=function(a,b){return a+b&4294967295},hex_chr=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function cmn(q,a,b,x,s,t){a=add32(add32(a,q),add32(x,t));return add32(a<<s|a>>>32-s,b)}function md5cycle(x,k){var a=x[0],b=x[1],c=x[2],d=x[3];a+=(b&c|~b&d)+k[0]-680876936|0;a=(a<<7|a>>>25)+b|0;d+=(a&b|~a&c)+k[1]-389564586|0;d=(d<<12|d>>>20)+a|0;c+=(d&a|~d&b)+k[2]+606105819|0;c=(c<<17|c>>>15)+d|0;b+=(c&d|~c&a)+k[3]-1044525330|0;b=(b<<22|b>>>10)+c|0;a+=(b&c|~b&d)+k[4]-176418897|0;a=(a<<7|a>>>25)+b|0;d+=(a&b|~a&c)+k[5]+1200080426|0;d=(d<<12|d>>>20)+a|0;c+=(d&a|~d&b)+k[6]-1473231341|0;c=(c<<17|c>>>15)+d|0;b+=(c&d|~c&a)+k[7]-45705983|0;b=(b<<22|b>>>10)+c|0;a+=(b&c|~b&d)+k[8]+1770035416|0;a=(a<<7|a>>>25)+b|0;d+=(a&b|~a&c)+k[9]-1958414417|0;d=(d<<12|d>>>20)+a|0;c+=(d&a|~d&b)+k[10]-42063|0;c=(c<<17|c>>>15)+d|0;b+=(c&d|~c&a)+k[11]-1990404162|0;b=(b<<22|b>>>10)+c|0;a+=(b&c|~b&d)+k[12]+1804603682|0;a=(a<<7|a>>>25)+b|0;d+=(a&b|~a&c)+k[13]-40341101|0;d=(d<<12|d>>>20)+a|0;c+=(d&a|~d&b)+k[14]-1502002290|0;c=(c<<17|c>>>15)+d|0;b+=(c&d|~c&a)+k[15]+1236535329|0;b=(b<<22|b>>>10)+c|0;a+=(b&d|c&~d)+k[1]-165796510|0;a=(a<<5|a>>>27)+b|0;d+=(a&c|b&~c)+k[6]-1069501632|0;d=(d<<9|d>>>23)+a|0;c+=(d&b|a&~b)+k[11]+643717713|0;c=(c<<14|c>>>18)+d|0;b+=(c&a|d&~a)+k[0]-373897302|0;b=(b<<20|b>>>12)+c|0;a+=(b&d|c&~d)+k[5]-701558691|0;a=(a<<5|a>>>27)+b|0;d+=(a&c|b&~c)+k[10]+38016083|0;d=(d<<9|d>>>23)+a|0;c+=(d&b|a&~b)+k[15]-660478335|0;c=(c<<14|c>>>18)+d|0;b+=(c&a|d&~a)+k[4]-405537848|0;b=(b<<20|b>>>12)+c|0;a+=(b&d|c&~d)+k[9]+568446438|0;a=(a<<5|a>>>27)+b|0;d+=(a&c|b&~c)+k[14]-1019803690|0;d=(d<<9|d>>>23)+a|0;c+=(d&b|a&~b)+k[3]-187363961|0;c=(c<<14|c>>>18)+d|0;b+=(c&a|d&~a)+k[8]+1163531501|0;b=(b<<20|b>>>12)+c|0;a+=(b&d|c&~d)+k[13]-1444681467|0;a=(a<<5|a>>>27)+b|0;d+=(a&c|b&~c)+k[2]-51403784|0;d=(d<<9|d>>>23)+a|0;c+=(d&b|a&~b)+k[7]+1735328473|0;c=(c<<14|c>>>18)+d|0;b+=(c&a|d&~a)+k[12]-1926607734|0;b=(b<<20|b>>>12)+c|0;a+=(b^c^d)+k[5]-378558|0;a=(a<<4|a>>>28)+b|0;d+=(a^b^c)+k[8]-2022574463|0;d=(d<<11|d>>>21)+a|0;c+=(d^a^b)+k[11]+1839030562|0;c=(c<<16|c>>>16)+d|0;b+=(c^d^a)+k[14]-35309556|0;b=(b<<23|b>>>9)+c|0;a+=(b^c^d)+k[1]-1530992060|0;a=(a<<4|a>>>28)+b|0;d+=(a^b^c)+k[4]+1272893353|0;d=(d<<11|d>>>21)+a|0;c+=(d^a^b)+k[7]-155497632|0;c=(c<<16|c>>>16)+d|0;b+=(c^d^a)+k[10]-1094730640|0;b=(b<<23|b>>>9)+c|0;a+=(b^c^d)+k[13]+681279174|0;a=(a<<4|a>>>28)+b|0;d+=(a^b^c)+k[0]-358537222|0;d=(d<<11|d>>>21)+a|0;c+=(d^a^b)+k[3]-722521979|0;c=(c<<16|c>>>16)+d|0;b+=(c^d^a)+k[6]+76029189|0;b=(b<<23|b>>>9)+c|0;a+=(b^c^d)+k[9]-640364487|0;a=(a<<4|a>>>28)+b|0;d+=(a^b^c)+k[12]-421815835|0;d=(d<<11|d>>>21)+a|0;c+=(d^a^b)+k[15]+530742520|0;c=(c<<16|c>>>16)+d|0;b+=(c^d^a)+k[2]-995338651|0;b=(b<<23|b>>>9)+c|0;a+=(c^(b|~d))+k[0]-198630844|0;a=(a<<6|a>>>26)+b|0;d+=(b^(a|~c))+k[7]+1126891415|0;d=(d<<10|d>>>22)+a|0;c+=(a^(d|~b))+k[14]-1416354905|0;c=(c<<15|c>>>17)+d|0;b+=(d^(c|~a))+k[5]-57434055|0;b=(b<<21|b>>>11)+c|0;a+=(c^(b|~d))+k[12]+1700485571|0;a=(a<<6|a>>>26)+b|0;d+=(b^(a|~c))+k[3]-1894986606|0;d=(d<<10|d>>>22)+a|0;c+=(a^(d|~b))+k[10]-1051523|0;c=(c<<15|c>>>17)+d|0;b+=(d^(c|~a))+k[1]-2054922799|0;b=(b<<21|b>>>11)+c|0;a+=(c^(b|~d))+k[8]+1873313359|0;a=(a<<6|a>>>26)+b|0;d+=(b^(a|~c))+k[15]-30611744|0;d=(d<<10|d>>>22)+a|0;c+=(a^(d|~b))+k[6]-1560198380|0;c=(c<<15|c>>>17)+d|0;b+=(d^(c|~a))+k[13]+1309151649|0;b=(b<<21|b>>>11)+c|0;a+=(c^(b|~d))+k[4]-145523070|0;a=(a<<6|a>>>26)+b|0;d+=(b^(a|~c))+k[11]-1120210379|0;d=(d<<10|d>>>22)+a|0;c+=(a^(d|~b))+k[2]+718787259|0;c=(c<<15|c>>>17)+d|0;b+=(d^(c|~a))+k[9]-343485551|0;b=(b<<21|b>>>11)+c|0;x[0]=a+x[0]|0;x[1]=b+x[1]|0;x[2]=c+x[2]|0;x[3]=d+x[3]|0}function md5blk(s){var md5blks=[],i;for(i=0;i<64;i+=4){md5blks[i>>2]=s.charCodeAt(i)+(s.charCodeAt(i+1)<<8)+(s.charCodeAt(i+2)<<16)+(s.charCodeAt(i+3)<<24)}return md5blks}function md5blk_array(a){var md5blks=[],i;for(i=0;i<64;i+=4){md5blks[i>>2]=a[i]+(a[i+1]<<8)+(a[i+2]<<16)+(a[i+3]<<24)}return md5blks}function md51(s){var n=s.length,state=[1732584193,-271733879,-1732584194,271733878],i,length,tail,tmp,lo,hi;for(i=64;i<=n;i+=64){md5cycle(state,md5blk(s.substring(i-64,i)))}s=s.substring(i-64);length=s.length;tail=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(i=0;i<length;i+=1){tail[i>>2]|=s.charCodeAt(i)<<(i%4<<3)}tail[i>>2]|=128<<(i%4<<3);if(i>55){md5cycle(state,tail);for(i=0;i<16;i+=1){tail[i]=0}}tmp=n*8;tmp=tmp.toString(16).match(/(.*?)(.{0,8})$/);lo=parseInt(tmp[2],16);hi=parseInt(tmp[1],16)||0;tail[14]=lo;tail[15]=hi;md5cycle(state,tail);return state}function md51_array(a){var n=a.length,state=[1732584193,-271733879,-1732584194,271733878],i,length,tail,tmp,lo,hi;for(i=64;i<=n;i+=64){md5cycle(state,md5blk_array(a.subarray(i-64,i)))}a=i-64<n?a.subarray(i-64):new Uint8Array(0);length=a.length;tail=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(i=0;i<length;i+=1){tail[i>>2]|=a[i]<<(i%4<<3)}tail[i>>2]|=128<<(i%4<<3);if(i>55){md5cycle(state,tail);for(i=0;i<16;i+=1){tail[i]=0}}tmp=n*8;tmp=tmp.toString(16).match(/(.*?)(.{0,8})$/);lo=parseInt(tmp[2],16);hi=parseInt(tmp[1],16)||0;tail[14]=lo;tail[15]=hi;md5cycle(state,tail);return state}function rhex(n){var s="",j;for(j=0;j<4;j+=1){s+=hex_chr[n>>j*8+4&15]+hex_chr[n>>j*8&15]}return s}function hex(x){var i;for(i=0;i<x.length;i+=1){x[i]=rhex(x[i])}return x.join("")}if(hex(md51("hello"))!=="5d41402abc4b2a76b9719d911017c592"){add32=function(x,y){var lsw=(x&65535)+(y&65535),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|lsw&65535}}if(typeof ArrayBuffer!=="undefined"&&!ArrayBuffer.prototype.slice){(function(){function clamp(val,length){val=val|0||0;if(val<0){return Math.max(val+length,0)}return Math.min(val,length)}ArrayBuffer.prototype.slice=function(from,to){var length=this.byteLength,begin=clamp(from,length),end=length,num,target,targetArray,sourceArray;if(to!==undefined){end=clamp(to,length)}if(begin>end){return new ArrayBuffer(0)}num=end-begin;target=new ArrayBuffer(num);targetArray=new Uint8Array(target);sourceArray=new Uint8Array(this,begin,num);targetArray.set(sourceArray);return target}})()}function toUtf8(str){if(/[\u0080-\uFFFF]/.test(str)){str=unescape(encodeURIComponent(str))}return str}function utf8Str2ArrayBuffer(str,returnUInt8Array){var length=str.length,buff=new ArrayBuffer(length),arr=new Uint8Array(buff),i;for(i=0;i<length;i+=1){arr[i]=str.charCodeAt(i)}return returnUInt8Array?arr:buff}function arrayBuffer2Utf8Str(buff){return String.fromCharCode.apply(null,new Uint8Array(buff))}function concatenateArrayBuffers(first,second,returnUInt8Array){var result=new Uint8Array(first.byteLength+second.byteLength);result.set(new Uint8Array(first));result.set(new Uint8Array(second),first.byteLength);return returnUInt8Array?result:result.buffer}function hexToBinaryString(hex){var bytes=[],length=hex.length,x;for(x=0;x<length-1;x+=2){bytes.push(parseInt(hex.substr(x,2),16))}return String.fromCharCode.apply(String,bytes)}function SparkMD5(){this.reset()}SparkMD5.prototype.append=function(str){this.appendBinary(toUtf8(str));return this};SparkMD5.prototype.appendBinary=function(contents){this._buff+=contents;this._length+=contents.length;var length=this._buff.length,i;for(i=64;i<=length;i+=64){md5cycle(this._hash,md5blk(this._buff.substring(i-64,i)))}this._buff=this._buff.substring(i-64);return this};SparkMD5.prototype.end=function(raw){var buff=this._buff,length=buff.length,i,tail=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],ret;for(i=0;i<length;i+=1){tail[i>>2]|=buff.charCodeAt(i)<<(i%4<<3)}this._finish(tail,length);ret=hex(this._hash);if(raw){ret=hexToBinaryString(ret)}this.reset();return ret};SparkMD5.prototype.reset=function(){this._buff="";this._length=0;this._hash=[1732584193,-271733879,-1732584194,271733878];return this};SparkMD5.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash}};SparkMD5.prototype.setState=function(state){this._buff=state.buff;this._length=state.length;this._hash=state.hash;return this};SparkMD5.prototype.destroy=function(){delete this._hash;delete this._buff;delete this._length};SparkMD5.prototype._finish=function(tail,length){var i=length,tmp,lo,hi;tail[i>>2]|=128<<(i%4<<3);if(i>55){md5cycle(this._hash,tail);for(i=0;i<16;i+=1){tail[i]=0}}tmp=this._length*8;tmp=tmp.toString(16).match(/(.*?)(.{0,8})$/);lo=parseInt(tmp[2],16);hi=parseInt(tmp[1],16)||0;tail[14]=lo;tail[15]=hi;md5cycle(this._hash,tail)};SparkMD5.hash=function(str,raw){return SparkMD5.hashBinary(toUtf8(str),raw)};SparkMD5.hashBinary=function(content,raw){var hash=md51(content),ret=hex(hash);return raw?hexToBinaryString(ret):ret};SparkMD5.ArrayBuffer=function(){this.reset()};SparkMD5.ArrayBuffer.prototype.append=function(arr){var buff=concatenateArrayBuffers(this._buff.buffer,arr,true),length=buff.length,i;this._length+=arr.byteLength;for(i=64;i<=length;i+=64){md5cycle(this._hash,md5blk_array(buff.subarray(i-64,i)))}this._buff=i-64<length?new Uint8Array(buff.buffer.slice(i-64)):new Uint8Array(0);return this};SparkMD5.ArrayBuffer.prototype.end=function(raw){var buff=this._buff,length=buff.length,tail=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],i,ret;for(i=0;i<length;i+=1){tail[i>>2]|=buff[i]<<(i%4<<3)}this._finish(tail,length);ret=hex(this._hash);if(raw){ret=hexToBinaryString(ret)}this.reset();return ret};SparkMD5.ArrayBuffer.prototype.reset=function(){this._buff=new Uint8Array(0);this._length=0;this._hash=[1732584193,-271733879,-1732584194,271733878];return this};SparkMD5.ArrayBuffer.prototype.getState=function(){var state=SparkMD5.prototype.getState.call(this);state.buff=arrayBuffer2Utf8Str(state.buff);return state};SparkMD5.ArrayBuffer.prototype.setState=function(state){state.buff=utf8Str2ArrayBuffer(state.buff,true);return SparkMD5.prototype.setState.call(this,state)};SparkMD5.ArrayBuffer.prototype.destroy=SparkMD5.prototype.destroy;SparkMD5.ArrayBuffer.prototype._finish=SparkMD5.prototype._finish;SparkMD5.ArrayBuffer.hash=function(arr,raw){var hash=md51_array(new Uint8Array(arr)),ret=hex(hash);return raw?hexToBinaryString(ret):ret};return SparkMD5}); | |
// Generate hash | |
( function(){ | |
// New element file type, hidden | |
var myfile = document.createElement( "input" ); | |
myfile.setAttribute( "type", "file" ); | |
myfile.setAttribute( "hidden", "" ); | |
myfile.addEventListener('change', function () { | |
try{ | |
var blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice, | |
file = this.files[0], | |
chunkSize = 2097152, // Read in chunks of 2MB | |
chunks = Math.ceil(file.size / chunkSize), | |
currentChunk = 0, | |
spark = new SparkMD5.ArrayBuffer(), | |
fileReader = new FileReader(); | |
fileReader.onload = function (e) { | |
//console.log('read chunk nr', currentChunk + 1, 'of', chunks); | |
spark.append(e.target.result); // Append array buffer | |
currentChunk++; | |
if (currentChunk < chunks) { | |
loadNext(); | |
} else { | |
//console.log('finished loading'); | |
prompt('MD5 Hash, good for password ;)', spark.end()); // Compute hash | |
myfile.parentNode.removeChild(myfile); | |
} | |
}; | |
fileReader.onerror = function () { | |
alert('oops, something went wrong.'); | |
myfile.parentNode.removeChild(myfile); | |
}; | |
function loadNext() { | |
var start = currentChunk * chunkSize, | |
end = ((start + chunkSize) >= file.size) ? file.size : start + chunkSize; | |
fileReader.readAsArrayBuffer(blobSlice.call(file, start, end)); | |
} | |
loadNext(); | |
}catch( e ){ | |
alert("Load this bookmarklet on other host !"); | |
} | |
}); | |
document.body.appendChild( myfile ); | |
myfile.click(); | |
} )(); | |
/* Bookmarklet, drag & drop on your bookmark toolbar : | |
javascript:void function(){(function(t){if("object"==typeof exports)module.exports=t();else if("function"==typeof define&&define.amd)define(t);else{var r;try{r=window}catch(e){r=self}r.SparkMD5=t()}})(function(t){"use strict";function r(t,r){var e=t[0],n=t[1],i=t[2],o=t[3];e+=(n&i|~n&o)+r[0]-680876936|0,e=(e<<7|e>>>25)+n|0,o+=(e&n|~e&i)+r[1]-389564586|0,o=(o<<12|o>>>20)+e|0,i+=(o&e|~o&n)+r[2]+606105819|0,i=(i<<17|i>>>15)+o|0,n+=(i&o|~i&e)+r[3]-1044525330|0,n=(n<<22|n>>>10)+i|0,e+=(n&i|~n&o)+r[4]-176418897|0,e=(e<<7|e>>>25)+n|0,o+=(e&n|~e&i)+r[5]+1200080426|0,o=(o<<12|o>>>20)+e|0,i+=(o&e|~o&n)+r[6]-1473231341|0,i=(i<<17|i>>>15)+o|0,n+=(i&o|~i&e)+r[7]-45705983|0,n=(n<<22|n>>>10)+i|0,e+=(n&i|~n&o)+r[8]+1770035416|0,e=(e<<7|e>>>25)+n|0,o+=(e&n|~e&i)+r[9]-1958414417|0,o=(o<<12|o>>>20)+e|0,i+=(o&e|~o&n)+r[10]-42063|0,i=(i<<17|i>>>15)+o|0,n+=(i&o|~i&e)+r[11]-1990404162|0,n=(n<<22|n>>>10)+i|0,e+=(n&i|~n&o)+r[12]+1804603682|0,e=(e<<7|e>>>25)+n|0,o+=(e&n|~e&i)+r[13]-40341101|0,o=(o<<12|o>>>20)+e|0,i+=(o&e|~o&n)+r[14]-1502002290|0,i=(i<<17|i>>>15)+o|0,n+=(i&o|~i&e)+r[15]+1236535329|0,n=(n<<22|n>>>10)+i|0,e+=(n&o|i&~o)+r[1]-165796510|0,e=(e<<5|e>>>27)+n|0,o+=(e&i|n&~i)+r[6]-1069501632|0,o=(o<<9|o>>>23)+e|0,i+=(o&n|e&~n)+r[11]+643717713|0,i=(i<<14|i>>>18)+o|0,n+=(i&e|o&~e)+r[0]-373897302|0,n=(n<<20|n>>>12)+i|0,e+=(n&o|i&~o)+r[5]-701558691|0,e=(e<<5|e>>>27)+n|0,o+=(e&i|n&~i)+r[10]+38016083|0,o=(o<<9|o>>>23)+e|0,i+=(o&n|e&~n)+r[15]-660478335|0,i=(i<<14|i>>>18)+o|0,n+=(i&e|o&~e)+r[4]-405537848|0,n=(n<<20|n>>>12)+i|0,e+=(n&o|i&~o)+r[9]+568446438|0,e=(e<<5|e>>>27)+n|0,o+=(e&i|n&~i)+r[14]-1019803690|0,o=(o<<9|o>>>23)+e|0,i+=(o&n|e&~n)+r[3]-187363961|0,i=(i<<14|i>>>18)+o|0,n+=(i&e|o&~e)+r[8]+1163531501|0,n=(n<<20|n>>>12)+i|0,e+=(n&o|i&~o)+r[13]-1444681467|0,e=(e<<5|e>>>27)+n|0,o+=(e&i|n&~i)+r[2]-51403784|0,o=(o<<9|o>>>23)+e|0,i+=(o&n|e&~n)+r[7]+1735328473|0,i=(i<<14|i>>>18)+o|0,n+=(i&e|o&~e)+r[12]-1926607734|0,n=(n<<20|n>>>12)+i|0,e+=(n^i^o)+r[5]-378558|0,e=(e<<4|e>>>28)+n|0,o+=(e^n^i)+r[8]-2022574463|0,o=(o<<11|o>>>21)+e|0,i+=(o^e^n)+r[11]+1839030562|0,i=(i<<16|i>>>16)+o|0,n+=(i^o^e)+r[14]-35309556|0,n=(n<<23|n>>>9)+i|0,e+=(n^i^o)+r[1]-1530992060|0,e=(e<<4|e>>>28)+n|0,o+=(e^n^i)+r[4]+1272893353|0,o=(o<<11|o>>>21)+e|0,i+=(o^e^n)+r[7]-155497632|0,i=(i<<16|i>>>16)+o|0,n+=(i^o^e)+r[10]-1094730640|0,n=(n<<23|n>>>9)+i|0,e+=(n^i^o)+r[13]+681279174|0,e=(e<<4|e>>>28)+n|0,o+=(e^n^i)+r[0]-358537222|0,o=(o<<11|o>>>21)+e|0,i+=(o^e^n)+r[3]-722521979|0,i=(i<<16|i>>>16)+o|0,n+=(i^o^e)+r[6]+76029189|0,n=(n<<23|n>>>9)+i|0,e+=(n^i^o)+r[9]-640364487|0,e=(e<<4|e>>>28)+n|0,o+=(e^n^i)+r[12]-421815835|0,o=(o<<11|o>>>21)+e|0,i+=(o^e^n)+r[15]+530742520|0,i=(i<<16|i>>>16)+o|0,n+=(i^o^e)+r[2]-995338651|0,n=(n<<23|n>>>9)+i|0,e+=(i^(n|~o))+r[0]-198630844|0,e=(e<<6|e>>>26)+n|0,o+=(n^(e|~i))+r[7]+1126891415|0,o=(o<<10|o>>>22)+e|0,i+=(e^(o|~n))+r[14]-1416354905|0,i=(i<<15|i>>>17)+o|0,n+=(o^(i|~e))+r[5]-57434055|0,n=(n<<21|n>>>11)+i|0,e+=(i^(n|~o))+r[12]+1700485571|0,e=(e<<6|e>>>26)+n|0,o+=(n^(e|~i))+r[3]-1894986606|0,o=(o<<10|o>>>22)+e|0,i+=(e^(o|~n))+r[10]-1051523|0,i=(i<<15|i>>>17)+o|0,n+=(o^(i|~e))+r[1]-2054922799|0,n=(n<<21|n>>>11)+i|0,e+=(i^(n|~o))+r[8]+1873313359|0,e=(e<<6|e>>>26)+n|0,o+=(n^(e|~i))+r[15]-30611744|0,o=(o<<10|o>>>22)+e|0,i+=(e^(o|~n))+r[6]-1560198380|0,i=(i<<15|i>>>17)+o|0,n+=(o^(i|~e))+r[13]+1309151649|0,n=(n<<21|n>>>11)+i|0,e+=(i^(n|~o))+r[4]-145523070|0,e=(e<<6|e>>>26)+n|0,o+=(n^(e|~i))+r[11]-1120210379|0,o=(o<<10|o>>>22)+e|0,i+=(e^(o|~n))+r[2]+718787259|0,i=(i<<15|i>>>17)+o|0,n+=(o^(i|~e))+r[9]-343485551|0,n=(n<<21|n>>>11)+i|0,t[0]=e+t[0]|0,t[1]=n+t[1]|0,t[2]=i+t[2]|0,t[3]=o+t[3]|0}function e(t){var r,e=[];for(r=0;64>r;r+=4)e[r>>2]=t.charCodeAt(r)+(t.charCodeAt(r+1)<<8)+(t.charCodeAt(r+2)<<16)+(t.charCodeAt(r+3)<<24);return e}function n(t){var r,e=[];for(r=0;64>r;r+=4)e[r>>2]=t[r]+(t[r+1]<<8)+(t[r+2]<<16)+(t[r+3]<<24);return e}function i(t){var n,i,o,f,h,a,s=t.length,u=[1732584193,-271733879,-1732584194,271733878];for(n=64;s>=n;n+=64)r(u,e(t.substring(n-64,n)));for(t=t.substring(n-64),i=t.length,o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],n=0;i>n;n+=1)o[n>>2]|=t.charCodeAt(n)<<(n%4<<3);if(o[n>>2]|=128<<(n%4<<3),n>55)for(r(u,o),n=0;16>n;n+=1)o[n]=0;return f=8*s,f=f.toString(16).match(/(.*?)(.{0,8})$/),h=parseInt(f[2],16),a=parseInt(f[1],16)||0,o[14]=h,o[15]=a,r(u,o),u}function o(t){var e,i,o,f,h,a,s=t.length,u=[1732584193,-271733879,-1732584194,271733878];for(e=64;s>=e;e+=64)r(u,n(t.subarray(e-64,e)));for(t=s>e-64?t.subarray(e-64):new Uint8Array(0),i=t.length,o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e=0;i>e;e+=1)o[e>>2]|=t[e]<<(e%4<<3);if(o[e>>2]|=128<<(e%4<<3),e>55)for(r(u,o),e=0;16>e;e+=1)o[e]=0;return f=8*s,f=f.toString(16).match(/(.*?)(.{0,8})$/),h=parseInt(f[2],16),a=parseInt(f[1],16)||0,o[14]=h,o[15]=a,r(u,o),u}function f(t){var r,e="";for(r=0;4>r;r+=1)e+=d[t>>8*r+4&15]+d[t>>8*r&15];return e}function h(t){var r;for(r=0;r<t.length;r+=1)t[r]=f(t[r]);return t.join("")}function a(t){return/[\u0080-\uFFFF]/.test(t)&&(t=unescape(encodeURIComponent(t))),t}function s(t,r){var e,n=t.length,i=new ArrayBuffer(n),o=new Uint8Array(i);for(e=0;n>e;e+=1)o[e]=t.charCodeAt(e);return r?o:i}function u(t){return String.fromCharCode.apply(null,new Uint8Array(t))}function p(t,r,e){var n=new Uint8Array(t.byteLength+r.byteLength);return n.set(new Uint8Array(t)),n.set(new Uint8Array(r),t.byteLength),e?n:n.buffer}function c(t){var r,e=[],n=t.length;for(r=0;n-1>r;r+=2)e.push(parseInt(t.substr(r,2),16));return String.fromCharCode.apply(String,e)}function y(){this.reset()}var l=function(t,r){return t+r&4294967295},d=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];return"5d41402abc4b2a76b9719d911017c592"!==h(i("hello"))&&(l=function(t,r){var e=(65535&t)+(65535&r),n=(t>>16)+(r>>16)+(e>>16);return n<<16|65535&e}),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function r(t,r){return t=0|t||0,0>t?Math.max(t+r,0):Math.min(t,r)}ArrayBuffer.prototype.slice=function(e,n){var i,o,f,h,a=this.byteLength,s=r(e,a),u=a;return n!==t&&(u=r(n,a)),s>u?new ArrayBuffer(0):(i=u-s,o=new ArrayBuffer(i),f=new Uint8Array(o),h=new Uint8Array(this,s,i),f.set(h),o)}}(),y.prototype.append=function(t){return this.appendBinary(a(t)),this},y.prototype.appendBinary=function(t){this._buff+=t,this._length+=t.length;var n,i=this._buff.length;for(n=64;i>=n;n+=64)r(this._hash,e(this._buff.substring(n-64,n)));return this._buff=this._buff.substring(n-64),this},y.prototype.end=function(t){var r,e,n=this._buff,i=n.length,o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(r=0;i>r;r+=1)o[r>>2]|=n.charCodeAt(r)<<(r%4<<3);return this._finish(o,i),e=h(this._hash),t&&(e=c(e)),this.reset(),e},y.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},y.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash}},y.prototype.setState=function(t){return this._buff=t.buff,this._length=t.length,this._hash=t.hash,this},y.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},y.prototype._finish=function(t,e){var n,i,o,f=e;if(t[f>>2]|=128<<(f%4<<3),f>55)for(r(this._hash,t),f=0;16>f;f+=1)t[f]=0;n=8*this._length,n=n.toString(16).match(/(.*?)(.{0,8})$/),i=parseInt(n[2],16),o=parseInt(n[1],16)||0,t[14]=i,t[15]=o,r(this._hash,t)},y.hash=function(t,r){return y.hashBinary(a(t),r)},y.hashBinary=function(t,r){var e=i(t),n=h(e);return r?c(n):n},y.ArrayBuffer=function(){this.reset()},y.ArrayBuffer.prototype.append=function(t){var e,i=p(this._buff.buffer,t,!0),o=i.length;for(this._length+=t.byteLength,e=64;o>=e;e+=64)r(this._hash,n(i.subarray(e-64,e)));return this._buff=new Uint8Array(o>e-64?i.buffer.slice(e-64):0),this},y.ArrayBuffer.prototype.end=function(t){var r,e,n=this._buff,i=n.length,o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(r=0;i>r;r+=1)o[r>>2]|=n[r]<<(r%4<<3);return this._finish(o,i),e=h(this._hash),t&&(e=c(e)),this.reset(),e},y.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},y.ArrayBuffer.prototype.getState=function(){var t=y.prototype.getState.call(this);return t.buff=u(t.buff),t},y.ArrayBuffer.prototype.setState=function(t){return t.buff=s(t.buff,!0),y.prototype.setState.call(this,t)},y.ArrayBuffer.prototype.destroy=y.prototype.destroy,y.ArrayBuffer.prototype._finish=y.prototype._finish,y.ArrayBuffer.hash=function(t,r){var e=o(new Uint8Array(t)),n=h(e);return r?c(n):n},y}),function(){var t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("hidden",""),t.addEventListener("change",function(){function r(){var t=f*i,r=t+i>=n.size?n.size:t+i;a.readAsArrayBuffer(e.call(n,t,r))}try{var e=File.prototype.slice||File.prototype.mozSlice||File.prototype.webkitSlice,n=this.files[0],i=2097152,o=Math.ceil(n.size/i),f=0,h=new SparkMD5.ArrayBuffer,a=new FileReader;a.onload=function(e){h.append(e.target.result),f++,o>f?r():(prompt("MD5 Hash, good for password ;)",h.end()),t.parentNode.removeChild(t))},a.onerror=function(){alert("oops, something went wrong."),t.parentNode.removeChild(t)},r()}catch(s){alert("Load this bookmarklet on other host !")}}),document.body.appendChild(t),t.click()}()}(); | |
*/ | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment