您好,欢迎访问一九零五行业门户网

分享JavaScript与Java中MD5使用两个例子_javascript技巧

在网上查了一下,在网上收集了java与javascript中使用的两个例子,试验过,分享下。
1、java:
package org.bearfly.test.md5; import java.io.unsupportedencodingexception;import java.security.messagedigest;import java.security.nosuchalgorithmexception; public class md5utils { public static void main(string[] args){ system.out.println(getmd5string()); system.out.println(md5(good)); } public final static string md5(string s) { char hexdigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; try { byte[] btinput = s.getbytes(); //获得md5摘要算法的 messagedigest 对象 messagedigest mdinst = messagedigest.getinstance(md5); //使用指定的字节更新摘要 mdinst.update(btinput); //获得密文 byte[] md = mdinst.digest(); //把密文转换成十六进制的字符串形式 int j = md.length; char str[] = new char[j * 2]; int k = 0; for (int i = 0; i >> 4 & 0xf]; str[k++] = hexdigits[byte0 & 0xf]; } return new string(str); } catch (exception e) { e.printstacktrace(); return null; } } public static string getmd5string(string str){ messagedigest messagedigest = null; try { messagedigest = messagedigest.getinstance(md5); messagedigest.reset(); messagedigest.update(str.getbytes(utf-8)); } catch (nosuchalgorithmexception e) { system.out.println(nosuchalgorithmexception caught!); system.exit(-1); } catch (unsupportedencodingexception e) { e.printstacktrace(); } byte[] bytearray = messagedigest.digest(); stringbuffer md5strbuff = new stringbuffer(); for (int i = 0; i > 5] |= 0x80 > 9) > 16) + (lsw >> 16); return (msw < (32 - cnt));} /* * convert a string to an array of little-endian words * if chrsz is ascii, characters >255 have their hi-byte silently ignored. */function str2binl(str){ var bin = array(); var mask = (1 <5] |= (str.charcodeat(i / chrsz) & mask) << (i%32); return bin;} /* * convert an array of little-endian words to a string */function binl2str(bin){ var str = ; var mask = (1 >> (i % 32)) & mask); return str;} /* * convert an array of little-endian words to a hex string. */function binl2hex(binarray){ var hex_tab = hexcase ? 0123456789abcdef : 0123456789abcdef; var str = ; for(var i = 0; i >2] >> ((i%4)*8+4)) & 0xf) + hex_tab.charat((binarray[i>>2] >> ((i%4)*8 )) & 0xf); } return str;} /* * convert an array of little-endian words to a base-64 string */function binl2b64(binarray){ var tab = abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789+/; var str = ; for(var i = 0; i > 2] >> 8 * ( i %4)) & 0xff) 2] >> 8 * ((i+1)%4)) & 0xff) 2] >> 8 * ((i+2)%4)) & 0xff); for(var j = 0; j binarray.length * 32) str += b64pad; else str += tab.charat((triplet >> 6*(3-j)) & 0x3f); } } return str;}
md5.html
md5_test
补充:javascript 的md5代码备份,跟java互通
var md5 = function (string) { function rotateleft(lvalue, ishiftbits) { return (lvalue>(32-ishiftbits)); } function addunsigned(lx,ly) { var lx4,ly4,lx8,ly8,lresult; lx8 = (lx & 0x80000000); ly8 = (ly & 0x80000000); lx4 = (lx & 0x40000000); ly4 = (ly & 0x40000000); lresult = (lx & 0x3fffffff)+(ly & 0x3fffffff); if (lx4 & ly4) { return (lresult ^ 0x80000000 ^ lx8 ^ ly8); } if (lx4 | ly4) { if (lresult & 0x40000000) { return (lresult ^ 0xc0000000 ^ lx8 ^ ly8); } else { return (lresult ^ 0x40000000 ^ lx8 ^ ly8); } } else { return (lresult ^ lx8 ^ ly8); } } function f(x,y,z) { return (x & y) | ((~x) & z); } function g(x,y,z) { return (x & z) | (y & (~z)); } function h(x,y,z) { return (x ^ y ^ z); } function i(x,y,z) { return (y ^ (x | (~z))); } function ff(a,b,c,d,x,s,ac) { a = addunsigned(a, addunsigned(addunsigned(f(b, c, d), x), ac)); return addunsigned(rotateleft(a, s), b); }; function gg(a,b,c,d,x,s,ac) { a = addunsigned(a, addunsigned(addunsigned(g(b, c, d), x), ac)); return addunsigned(rotateleft(a, s), b); }; function hh(a,b,c,d,x,s,ac) { a = addunsigned(a, addunsigned(addunsigned(h(b, c, d), x), ac)); return addunsigned(rotateleft(a, s), b); }; function ii(a,b,c,d,x,s,ac) { a = addunsigned(a, addunsigned(addunsigned(i(b, c, d), x), ac)); return addunsigned(rotateleft(a, s), b); }; function converttowordarray(string) { var lwordcount; var lmessagelength = string.length; var lnumberofwords_temp1=lmessagelength + 8; var lnumberofwords_temp2=(lnumberofwords_temp1-(lnumberofwords_temp1 % 64))/64; var lnumberofwords = (lnumberofwords_temp2+1)*16; var lwordarray=array(lnumberofwords-1); var lbyteposition = 0; var lbytecount = 0; while ( lbytecount < lmessagelength ) { lwordcount = (lbytecount-(lbytecount % 4))/4; lbyteposition = (lbytecount % 4)*8; lwordarray[lwordcount] = (lwordarray[lwordcount] | (string.charcodeat(lbytecount)<>(lcount*8)) & 255; wordtohexvalue_temp = 0 + lbyte.tostring(16); wordtohexvalue = wordtohexvalue + wordtohexvalue_temp.substr(wordtohexvalue_temp.length-2,2); } return wordtohexvalue; }; function utf8encode(string) { string = string.replace(/\r\n/g,\n); var utftext = ; for (var n = 0; n 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; }; var x=array(); var k,aa,bb,cc,dd,a,b,c,d; var s11=7, s12=12, s13=17, s14=22; var s21=5, s22=9 , s23=14, s24=20; var s31=4, s32=11, s33=16, s34=23; var s41=6, s42=10, s43=15, s44=21; string = utf8encode(string); x = converttowordarray(string); a = 0x67452301; b = 0xefcdab89; c = 0x98badcfe; d = 0x10325476; for (k=0;k 以上就是本文的全部内容,java、javascript、md5三者之间的关系,使用,希望对大家的学习有所帮助。
其它类似信息

推荐信息