469,347 Members | 1,864 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,347 developers. It's quick & easy.

Script for password

24
I have a <form></form> set up on my web page for passwords. i want to make it so only one password would work. how can i do that in javascript??
Mar 22 '07 #1
15 1545
AricC
1,892 Expert 1GB
I have a <form></form> set up on my web page for passwords. i want to make it so only one password would work. how can i do that in javascript??
Do you want to make the password secure? If so javascript isn't the way to go. You would basically use javascript to check for validation and if you have the user verify the password you can use javascript to check that both inputs are the same.
Mar 23 '07 #2
codeex
24
It dosent need to be secure, i have 2 pages that have a password box, and i just want to make it so only one password works on the page and when they type it in it will go to another page.
Mar 23 '07 #3
AricC
1,892 Expert 1GB
It dosent need to be secure, i have 2 pages that have a password box, and i just want to make it so only one password works on the page and when they type it in it will go to another page.
So when you type the password in if it is correct you want it to go to another page?
Mar 23 '07 #4
codeex
24
yes
and if its wrong to stay on the same page
Mar 23 '07 #5
AricC
1,892 Expert 1GB
It dosent need to be secure, i have 2 pages that have a password box, and i just want to make it so only one password works on the page and when they type it in it will go to another page.
People don't usually do this that is why we are asking so many questions. You do realize that the entire world can right click and view the source to see this password?

Here is an example:
Expand|Select|Wrap|Line Numbers
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2.     <html>
  3.         <head>
  4.             <title>Coming...</title>
  5.                 <script type="text/javascript">
  6.         function CheckMe()
  7.         {
  8.         var strPassword = document.getElementById("strPassword").value
  9.         if (strPassword == "New England Clam Chowder")
  10.             {
  11.                 window.location="http://google.com"
  12.             }
  13.             else
  14.             {
  15.                 alert("No Way Jose")
  16.             }
  17.         }
  18.  
  19.  
  20.  
  21.  
  22.         </script>
  23.         </head>
  24.             <body>
  25.         The Password Is: New England Clam Chowder
  26.                   <form>
  27.             <input type="password" id="strPassword" size="25" />
  28.             <br />
  29.             <input type="button" onclick="CheckMe()" size="25" value="Submit" />
  30.         </form>
  31.             </body>
  32. </html>
  33.  
Mar 23 '07 #6
iam_clint
1,208 Expert 1GB
you could do a md5 hash

http://pajhome.org.uk/crypt/md5/
Mar 23 '07 #7
codeex
24
yes i do realize that its not import information im trying to guard its more of a block.

But how could i make it more secure??
Mar 23 '07 #8
AricC
1,892 Expert 1GB
yes i do realize that its not import information im trying to guard its more of a block.

But how could i make it more secure??
Check out Clint's solution above I think it would be more than adequate for what you are trying to do.
Mar 23 '07 #9
codeex
24
thank you for your help
Mar 23 '07 #10
AricC
1,892 Expert 1GB
thank you for your help
No problem, let us know if you need anymore :)
Mar 23 '07 #11
codeex
24
I am not familer with hd5 hash code how would i do it??
Mar 23 '07 #12
iam_clint
1,208 Expert 1GB
So you take your password

pass1 for example... use http://pajhome.org.uk/crypt/md5/ to convert it into md5 which will = a722c63db8ec8625af6cf71cb8c2d939

you add this script to your page as an include if you want but add it to the page
Expand|Select|Wrap|Line Numbers
  1. /*
  2. * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
  3. * Digest Algorithm, as defined in RFC 1321.
  4. * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
  5. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
  6. * Distributed under the BSD License
  7. * See http://pajhome.org.uk/crypt/md5 for more info.
  8. */
  9.  
  10. /*
  11. * Configurable variables. You may need to tweak these to be compatible with
  12. * the server-side, but the defaults work in most cases.
  13. */
  14. var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase        */
  15. var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
  16. var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode     */
  17.  
  18. /*
  19. * These are the functions you'll usually want to call
  20. * They take string arguments and return either hex or base-64 encoded strings
  21. */
  22. function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
  23. function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
  24. function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
  25. function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
  26. function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
  27. function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
  28.  
  29. /*
  30. * Perform a simple self-test to see if the VM is working
  31. */
  32. function md5_vm_test()
  33. {
  34. return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
  35. }
  36.  
  37. /*
  38. * Calculate the MD5 of an array of little-endian words, and a bit length
  39. */
  40. function core_md5(x, len)
  41. {
  42. /* append padding */
  43. x[len >> 5] |= 0x80 << ((len) % 32);
  44. x[(((len + 64) >>> 9) << 4) + 14] = len;
  45.  
  46. var a = 1732584193;
  47. var b = -271733879;
  48. var c = -1732584194;
  49. var d = 271733878;
  50.  
  51. for(var i = 0; i < x.length; i += 16)
  52. {
  53.     var olda = a;
  54.     var oldb = b;
  55.     var oldc = c;
  56.     var oldd = d;
  57.  
  58.     a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
  59.     d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
  60.     c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
  61.     b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
  62.     a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
  63.     d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
  64.     c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
  65.     b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
  66.     a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
  67.     d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
  68.     c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
  69.     b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
  70.     a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
  71.     d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
  72.     c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
  73.     b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
  74.  
  75.     a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
  76.     d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
  77.     c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
  78.     b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
  79.     a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
  80.     d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
  81.     c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
  82.     b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
  83.     a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
  84.     d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
  85.     c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
  86.     b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
  87.     a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
  88.     d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
  89.     c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
  90.     b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
  91.  
  92.     a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
  93.     d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
  94.     c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
  95.     b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
  96.     a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
  97.     d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
  98.     c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
  99.     b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
  100.     a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
  101.     d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
  102.     c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
  103.     b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
  104.     a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
  105.     d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
  106.     c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
  107.     b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
  108.  
  109.     a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
  110.     d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
  111.     c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
  112.     b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
  113.     a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
  114.     d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
  115.     c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
  116.     b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
  117.     a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
  118.     d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
  119.     c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
  120.     b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
  121.     a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
  122.     d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
  123.     c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
  124.     b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
  125.  
  126.     a = safe_add(a, olda);
  127.     b = safe_add(b, oldb);
  128.     c = safe_add(c, oldc);
  129.     d = safe_add(d, oldd);
  130. }
  131. return Array(a, b, c, d);
  132.  
  133. }
  134.  
  135. /*
  136. * These functions implement the four basic operations the algorithm uses.
  137. */
  138. function md5_cmn(q, a, b, x, s, t)
  139. {
  140. return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
  141. }
  142. function md5_ff(a, b, c, d, x, s, t)
  143. {
  144. return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
  145. }
  146. function md5_gg(a, b, c, d, x, s, t)
  147. {
  148. return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
  149. }
  150. function md5_hh(a, b, c, d, x, s, t)
  151. {
  152. return md5_cmn(b ^ c ^ d, a, b, x, s, t);
  153. }
  154. function md5_ii(a, b, c, d, x, s, t)
  155. {
  156. return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
  157. }
  158.  
  159. /*
  160. * Calculate the HMAC-MD5, of a key and some data
  161. */
  162. function core_hmac_md5(key, data)
  163. {
  164. var bkey = str2binl(key);
  165. if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
  166.  
  167. var ipad = Array(16), opad = Array(16);
  168. for(var i = 0; i < 16; i++)
  169. {
  170.     ipad[i] = bkey[i] ^ 0x36363636;
  171.     opad[i] = bkey[i] ^ 0x5C5C5C5C;
  172. }
  173.  
  174. var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
  175. return core_md5(opad.concat(hash), 512 + 128);
  176. }
  177.  
  178. /*
  179. * Add integers, wrapping at 2^32. This uses 16-bit operations internally
  180. * to work around bugs in some JS interpreters.
  181. */
  182. function safe_add(x, y)
  183. {
  184. var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  185. var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  186. return (msw << 16) | (lsw & 0xFFFF);
  187. }
  188.  
  189. /*
  190. * Bitwise rotate a 32-bit number to the left.
  191. */
  192. function bit_rol(num, cnt)
  193. {
  194. return (num << cnt) | (num >>> (32 - cnt));
  195. }
  196.  
  197. /*
  198. * Convert a string to an array of little-endian words
  199. * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
  200. */
  201. function str2binl(str)
  202. {
  203. var bin = Array();
  204. var mask = (1 << chrsz) - 1;
  205. for(var i = 0; i < str.length * chrsz; i += chrsz)
  206.     bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
  207. return bin;
  208. }
  209.  
  210. /*
  211. * Convert an array of little-endian words to a string
  212. */
  213. function binl2str(bin)
  214. {
  215. var str = "";
  216. var mask = (1 << chrsz) - 1;
  217. for(var i = 0; i < bin.length * 32; i += chrsz)
  218.     str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
  219. return str;
  220. }
  221.  
  222. /*
  223. * Convert an array of little-endian words to a hex string.
  224. */
  225. function binl2hex(binarray)
  226. {
  227. var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  228. var str = "";
  229. for(var i = 0; i < binarray.length * 4; i++)
  230. {
  231.     str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
  232.          hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
  233. }
  234. return str;
  235. }
  236.  
  237. /*
  238. * Convert an array of little-endian words to a base-64 string
  239. */
  240. function binl2b64(binarray)
  241. {
  242. var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  243. var str = "";
  244. for(var i = 0; i < binarray.length * 4; i += 3)
  245. {
  246.     var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)
  247.                 | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
  248.                 | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
  249.     for(var j = 0; j < 4; j++)
  250.     {
  251.      if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
  252.      else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
  253.     }
  254. }
  255. return str;
  256. }
  257.  
then when the user inputs his password

you do
hex_md5("input string");

and compare with your md5 hash
Expand|Select|Wrap|Line Numbers
  1. <script>
  2. function checkpass(val) {
  3. if (hex_md5(val) == "a722c63db8ec8625af6cf71cb8c2d939") {
  4. alert("correct password");
  5. } else {
  6. alert("wrong password");
  7. }
  8. }
  9. </script>
  10.  
  11.  
  12. <input type="password" id="pass">
  13. <input type="button" onclick="var val = document.getElementById('pass'); checkpass(val);">
  14.  


this would make it secure because

no one would know the password... viewing the source would only show them the md5 hash and good luck converting it back then you just convert what they input to md5 and compair the md5 hashes instead of strings.


so even if they know the hash if they put
a722c63db8ec8625af6cf71cb8c2d939 into the password box it will then convert this into md5 and it would be different so i would say md5 is a pretty good security measure and lots of people use it (mostly server side).


if you don't understand post again on what part you don't understand.
Mar 23 '07 #13
codeex
24
you add this script to your page as an include if you want but add it to the page
Expand|Select|Wrap|Line Numbers
  1. /*
  2. * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
  3. * Digest Algorithm, as defined in RFC 1321.
  4. * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
  5. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
  6. * Distributed under the BSD License
  7. * See http://pajhome.org.uk/crypt/md5 for more info.
  8. */
  9.  
  10. /*
  11. * Configurable variables. You may need to tweak these to be compatible with
  12. * the server-side, but the defaults work in most cases.
  13. */
  14. var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase        */
  15. var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
  16. var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode     */
  17.  
  18. /*
  19. * These are the functions you'll usually want to call
  20. * They take string arguments and return either hex or base-64 encoded strings
  21. */
  22. function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
  23. function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
  24. function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
  25. function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
  26. function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
  27. function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
  28.  
  29. /*
  30. * Perform a simple self-test to see if the VM is working
  31. */
  32. function md5_vm_test()
  33. {
  34. return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
  35. }
  36.  
  37. /*
  38. * Calculate the MD5 of an array of little-endian words, and a bit length
  39. */
  40. function core_md5(x, len)
  41. {
  42. /* append padding */
  43. x[len >> 5] |= 0x80 << ((len) % 32);
  44. x[(((len + 64) >>> 9) << 4) + 14] = len;
  45.  
  46. var a = 1732584193;
  47. var b = -271733879;
  48. var c = -1732584194;
  49. var d = 271733878;
  50.  
  51. for(var i = 0; i < x.length; i += 16)
  52. {
  53.     var olda = a;
  54.     var oldb = b;
  55.     var oldc = c;
  56.     var oldd = d;
  57.  
  58.     a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
  59.     d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
  60.     c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
  61.     b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
  62.     a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
  63.     d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
  64.     c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
  65.     b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
  66.     a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
  67.     d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
  68.     c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
  69.     b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
  70.     a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
  71.     d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
  72.     c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
  73.     b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
  74.  
  75.     a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
  76.     d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
  77.     c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
  78.     b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
  79.     a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
  80.     d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
  81.     c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
  82.     b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
  83.     a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
  84.     d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
  85.     c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
  86.     b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
  87.     a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
  88.     d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
  89.     c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
  90.     b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
  91.  
  92.     a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
  93.     d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
  94.     c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
  95.     b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
  96.     a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
  97.     d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
  98.     c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
  99.     b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
  100.     a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
  101.     d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
  102.     c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
  103.     b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
  104.     a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
  105.     d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
  106.     c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
  107.     b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
  108.  
  109.     a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
  110.     d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
  111.     c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
  112.     b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
  113.     a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
  114.     d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
  115.     c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
  116.     b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
  117.     a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
  118.     d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
  119.     c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
  120.     b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
  121.     a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
  122.     d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
  123.     c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
  124.     b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
  125.  
  126.     a = safe_add(a, olda);
  127.     b = safe_add(b, oldb);
  128.     c = safe_add(c, oldc);
  129.     d = safe_add(d, oldd);
  130. }
  131. return Array(a, b, c, d);
  132.  
  133. }
  134.  
  135. /*
  136. * These functions implement the four basic operations the algorithm uses.
  137. */
  138. function md5_cmn(q, a, b, x, s, t)
  139. {
  140. return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
  141. }
  142. function md5_ff(a, b, c, d, x, s, t)
  143. {
  144. return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
  145. }
  146. function md5_gg(a, b, c, d, x, s, t)
  147. {
  148. return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
  149. }
  150. function md5_hh(a, b, c, d, x, s, t)
  151. {
  152. return md5_cmn(b ^ c ^ d, a, b, x, s, t);
  153. }
  154. function md5_ii(a, b, c, d, x, s, t)
  155. {
  156. return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
  157. }
  158.  
  159. /*
  160. * Calculate the HMAC-MD5, of a key and some data
  161. */
  162. function core_hmac_md5(key, data)
  163. {
  164. var bkey = str2binl(key);
  165. if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
  166.  
  167. var ipad = Array(16), opad = Array(16);
  168. for(var i = 0; i < 16; i++)
  169. {
  170.     ipad[i] = bkey[i] ^ 0x36363636;
  171.     opad[i] = bkey[i] ^ 0x5C5C5C5C;
  172. }
  173.  
  174. var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
  175. return core_md5(opad.concat(hash), 512 + 128);
  176. }
  177.  
  178. /*
  179. * Add integers, wrapping at 2^32. This uses 16-bit operations internally
  180. * to work around bugs in some JS interpreters.
  181. */
  182. function safe_add(x, y)
  183. {
  184. var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  185. var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  186. return (msw << 16) | (lsw & 0xFFFF);
  187. }
  188.  
  189. /*
  190. * Bitwise rotate a 32-bit number to the left.
  191. */
  192. function bit_rol(num, cnt)
  193. {
  194. return (num << cnt) | (num >>> (32 - cnt));
  195. }
  196.  
  197. /*
  198. * Convert a string to an array of little-endian words
  199. * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
  200. */
  201. function str2binl(str)
  202. {
  203. var bin = Array();
  204. var mask = (1 << chrsz) - 1;
  205. for(var i = 0; i < str.length * chrsz; i += chrsz)
  206.     bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
  207. return bin;
  208. }
  209.  
  210. /*
  211. * Convert an array of little-endian words to a string
  212. */
  213. function binl2str(bin)
  214. {
  215. var str = "";
  216. var mask = (1 << chrsz) - 1;
  217. for(var i = 0; i < bin.length * 32; i += chrsz)
  218.     str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
  219. return str;
  220. }
  221.  
  222. /*
  223. * Convert an array of little-endian words to a hex string.
  224. */
  225. function binl2hex(binarray)
  226. {
  227. var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  228. var str = "";
  229. for(var i = 0; i < binarray.length * 4; i++)
  230. {
  231.     str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
  232.          hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
  233. }
  234. return str;
  235. }
  236.  
  237. /*
  238. * Convert an array of little-endian words to a base-64 string
  239. */
  240. function binl2b64(binarray)
  241. {
  242. var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  243. var str = "";
  244. for(var i = 0; i < binarray.length * 4; i += 3)
  245. {
  246.     var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)
  247.                 | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
  248.                 | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
  249.     for(var j = 0; j < 4; j++)
  250.     {
  251.      if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
  252.      else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
  253.     }
  254. }
  255. return str;
  256. }
  257.  




where in do i put this part??? inside the <head></head>?
Mar 23 '07 #14
codeex
24
and do i have to use <input type="button"> feature?? is there a way to do it where they can just hit enter?
Mar 23 '07 #15
eragon
431 256MB
have you tried <input type="submit">? that works on enter i believe
May 27 '07 #16

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

10 posts views Thread by Max | last post: by
9 posts views Thread by Jerim79 | last post: by
2 posts views Thread by Nosferatum | last post: by
1 post views Thread by Andrew Murray | last post: by
5 posts views Thread by silmana | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
1 post views Thread by Marylou17 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.