⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sha1.js

📁 dojo与json创建无限级树的时候,当在父结点下添加了一个新结点,我怎么让父亲结点重新调用json加载一下子结点内容.
💻 JS
字号:
dojo.require("dojo.crypto");dojo.provide("dojo.crypto.SHA1");dojo.require("dojo.experimental");/* *	A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined *	in FIPS PUB 180-1 * * 	Version 2.1a Copyright Paul Johnston 2000 - 2002. * 	Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * 	Distributed under the BSD License * 	See http://pajhome.org.uk/crypt/md5 for details. * *	Dojo port by Tom Trenka */dojo.experimental("dojo.crypto.SHA1");dojo.crypto.SHA1 = new function(){	var chrsz=8;	var mask=(1<<chrsz)-1;	function toWord(s) {	  var wa=[];	  for(var i=0; i<s.length*chrsz; i+=chrsz)		wa[i>>5]|=(s.charCodeAt(i/chrsz)&mask)<<(i%32);	  return wa;	}	function toString(wa){		var s=[];		for(var i=0; i<wa.length*32; i+=chrsz)			s.push(String.fromCharCode((wa[i>>5]>>>(i%32))&mask));		return s.join("");	}	function toHex(wa) {		var h="0123456789abcdef";		var s=[];		for(var i=0; i<wa.length*4; i++){			s.push(h.charAt((wa[i>>2]>>((i%4)*8+4))&0xF)+h.charAt((wa[i>>2]>>((i%4)*8))&0xF));		}		return s.join("");	}	function toBase64(wa){		var p="=";		var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";		var s=[];		for(var i=0; i<wa.length*4; i+=3){			var t=(((wa[i>>2]>>8*(i%4))&0xFF)<<16)|(((wa[i+1>>2]>>8*((i+1)%4))&0xFF)<<8)|((wa[i+2>>2]>>8*((i+2)%4))&0xFF);			for(var j=0; j<4; j++){				if(i*8+j*6>wa.length*32) s.push(p);				else s.push(tab.charAt((t>>6*(3-j))&0x3F));			}		}		return s.join("");	}	//	math	function add(x,y){		var l=(x&0xffff)+(y&0xffff);		var m=(x>>16)+(y>>16)+(l>>16);		return (m<<16)|(l&0xffff);	}	function r(x,n){  return (x<<n)|(x>>>(32-n)); }		//	SHA rounds	function f(u,v,w){ return ((u&v)|(~u&w)); }	function g(u,v,w){ return ((u&v)|(u&w)|(v&w)); }	function h(u,v,w){ return (u^v^w); }		function fn(i,u,v,w){		if(i<20) return f(u,v,w);		if(i<40) return h(u,v,w);		if(i<60) return g(u,v,w);		return h(u,v,w);	}	function cnst(i){		if(i<20) return 1518500249;		if(i<40) return 1859775393;		if(i<60) return -1894007588;		return -899497514;	}	function core(x,len){		x[len>>5]|=0x80<<(24-len%32);		x[((len+64>>9)<<4)+15]=len;		var w=[];		var a= 1732584193;		//	0x67452301		var b=-271733879;		//	0xefcdab89		var c=-1732584194;		//	0x98badcfe		var d= 271733878;		//	0x10325476		var e=-1009589776;		//	0xc3d2e1f0				for(var i=0; i<x.length; i+=16){			var olda=a;			var oldb=b;			var oldc=c;			var oldd=d;			var olde=e;			for(var j=0; j<80; j++){				if(j<16) w[j]=x[i+j];				else w[j]=r(w[j-3]^w[j-8]^w[j-14]^w[j-16],1);				var t=add(add(r(a,5),fn(j,b,c,d)),add(add(e,w[j]),cnst(j)));				e=d; d=c; c=r(b,30); b=a; a=t;			}			a=add(a,olda);			b=add(b,oldb);			c=add(c,oldc);			d=add(d,oldd);			e=add(e,olde);		}		return [a,b,c,d,e];	}	function hmac(data,key){		var wa=toWord(key);		if(wa.length>16) wa=core(wa,key.length*chrsz);		var l=[], r=[];		for(var i=0; i<16; i++){			l[i]=wa[i]^0x36363636;			r[i]=wa[i]^0x5c5c5c5c;		}		var h=core(l.concat(toWord(data)),512+data.length*chrsz);		return core(r.concat(h),640);	}	this.compute=function(data,outputType){		var out=outputType||dojo.crypto.outputTypes.Base64;		switch(out){			case dojo.crypto.outputTypes.Hex:{				return toHex(core(toWord(data),data.length*chrsz));			}			case dojo.crypto.outputTypes.String:{				return toString(core(toWord(data),data.length*chrsz));			}			default:{				return toBase64(core(toWord(data),data.length*chrsz));			}		}	};	this.getHMAC=function(data,key,outputType){		var out=outputType||dojo.crypto.outputTypes.Base64;		switch(out){			case dojo.crypto.outputTypes.Hex:{				return toHex(hmac(data,key));			}			case dojo.crypto.outputTypes.String:{				return toString(hmac(data,key));			}			default:{				return toBase64(hmac(data,key));			}		}	};}();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -