![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 3.07.2003 Skąd: Szczecin->niebuszewo->*(next to window) Ostrzeżenie: (0%) ![]() ![]() |
Witam!
w obliczu pewnego problemu (braku SSL) na darmowych serwerach wartoby pomyslec nad obejsciem tego problemu. Otoz mznaby za pomoca javascriptu generowac zhaszowany (md5) ciag zawierajacy login haslo itd. i porownywac go na serwerze z tam zhaszowanym. Tyleko jak do haszowania doda sie czas (dla wikszego bezpieczenstwa) to taki pakiet informacji musialby docierac do serwera natychmiast, wiec mazna to z kolei obejsc poprzez wygenerowanie na serwerze kilku(nastu) md5 i kilejno je porownujemy z tym co przegladarka wslala do serwera. Ale to tez daje wznoosc na kilka sekund i w dodatu obarcza serwer obliczeniami. plik index.php: [php:1:10ee9802fc]<?php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Logowanie</title> <script type="text/javascript" src="login.js"></script> <script type="text/javascript"> var czas=<?php print(time()."rn")?> setInterval('czas++',1000) </script> </head> <body> <form onsubmit="return send(this.login.value, this.pwd.value, czas, 'frm')"> Login: <input type="text" name="login"><br> Hasło: <input type="password" name="pwd"><br> <input type="submit" value="Zaloguj"> </form> <form action="login.php" method="post" name="frm"> <input type="hidden" name="s"> </form> </body> </html> ?>[/php:1:10ee9802fc] plik login.php [php:1:10ee9802fc]<?php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Logowanie</title> </head> <body> <?php // definiujemy poprawny login i hasło $login='test'; $haslo='xyz123'; // pobieramy aktualny znacznik czasu $czas=time(); // wykonujemy pętlę sprawdzającą poprawność przesłanej sumy MD5 for($i=0; $i<15; $i++){ if(md5($login.$haslo.($czas-$i)) == $_POST['s']){ print("Podany login i hasło są poprawne !");break; } } // jeżeli przesłana suma MD5 jest niepoprawna, wyświetlamy stosowną informację if($i==15)print("Brak autoryzacji !<br><a href='java script:history.go(-1)'>Spróbuj jeszcze raz</a>"); ?> </body> </html> ?>[/php:1:10ee9802fc] plik login.js Kod // SecureLogin 1.1 by Michal Grzechowiak (C) 2003
function y(n){var s='',h='0123456789abcdef',i=0 for(i;i<4;)s+=h.charAt((n>>(i*8+4))&15)+h.charAt((n>>(i++*8))&15);return s} function k(s){var l=s.length,n=((l+8)>>6)+1,b=[],i=0 for(i;i<n*16;)b[i++]=0;for(i=0;i<l;i++)b[i>>2]|=s.charCodeAt(i)<<((i%4)*8) b[i>>2]|=128<<((i%4)*8);b[n*16-2]=l*8;return b} function u(x,y){var l=(x&0xFFFF)+(y&0xFFFF),m=(x>>16)+(y>>16)+(l>>16);return (m<<16)|(l&0xFFFF)} function r(n,c){return (n<<c)|(n>>>(32-c))} function m(q,a,b,x,s,t){return u(r(u(u(a,q),u(x,t)),s),b)} function f(a,b,c,d,x,s,t){return m((b&c)|((~b)&d),a,b,x,s,t)} function g(a,b,c,d,x,s,t){return m((b&d)|(c&(~d)),a,b,x,s,t)} function h(a,b,c,d,x,s,t){return m(b^c^d,a,b,x,s,t)} function i(a,b,c,d,x,s,t){return m(c^(b|(~d)),a,b,x,s,t)} function md5(s){ var x=k(s),a=1732584193,b=-271733879,c=-1732584194,d=271733878,j,o for(j=0;j<x.length;j+=16){ o=[a,b,c,d] a=f(a,b,c,d,x[j+0],7,-680876936) d=f(d,a,b,c,x[j+1],12,-389564586) c=f(c,d,a,b,x[j+2],17,606105819) b=f(b,c,d,a,x[j+3],22,-1044525330) a=f(a,b,c,d,x[j+4],7,-176418897) d=f(d,a,b,c,x[j+5],12,1200080426) c=f(c,d,a,b,x[j+6],17,-1473231341) b=f(b,c,d,a,x[j+7],22,-45705983) a=f(a,b,c,d,x[j+8],7,1770035416) d=f(d,a,b,c,x[j+9],12,-1958414417) c=f(c,d,a,b,x[j+10],17,-42063) b=f(b,c,d,a,x[j+11],22,-1990404162) a=f(a,b,c,d,x[j+12],7,1804603682) d=f(d,a,b,c,x[j+13],12,-40341101) c=f(c,d,a,b,x[j+14],17,-1502002290) b=f(b,c,d,a,x[j+15],22,1236535329) a=g(a,b,c,d,x[j+1],5,-165796510) d=g(d,a,b,c,x[j+6],9,-1069501632) c=g(c,d,a,b,x[j+11],14,643717713) b=g(b,c,d,a,x[j+0],20,-373897302) a=g(a,b,c,d,x[j+5],5,-701558691) d=g(d,a,b,c,x[j+10],9,38016083) c=g(c,d,a,b,x[j+15],14,-660478335) b=g(b,c,d,a,x[j+4],20,-405537848) a=g(a,b,c,d,x[j+9],5,568446438) d=g(d,a,b,c,x[j+14],9,-1019803690) c=g(c,d,a,b,x[j+3],14,-187363961) b=g(b,c,d,a,x[j+8],20,1163531501) a=g(a,b,c,d,x[j+13],5,-1444681467) d=g(d,a,b,c,x[j+2],9,-51403784) c=g(c,d,a,b,x[j+7],14,1735328473) b=g(b,c,d,a,x[j+12],20,-1926607734) a=h(a,b,c,d,x[j+5],4,-378558) d=h(d,a,b,c,x[j+8],11,-2022574463) c=h(c,d,a,b,x[j+11],16,1839030562) b=h(b,c,d,a,x[j+14],23,-35309556) a=h(a,b,c,d,x[j+1],4,-1530992060) d=h(d,a,b,c,x[j+4],11,1272893353) c=h(c,d,a,b,x[j+7],16,-155497632) b=h(b,c,d,a,x[j+10],23,-1094730640) a=h(a,b,c,d,x[j+13],4,681279174) d=h(d,a,b,c,x[j+0],11,-358537222) c=h(c,d,a,b,x[j+3],16,-722521979) b=h(b,c,d,a,x[j+6],23,76029189) a=h(a,b,c,d,x[j+9],4,-640364487) d=h(d,a,b,c,x[j+12],11,-421815835) c=h(c,d,a,b,x[j+15],16,530742520) b=h(b,c,d,a,x[j+2],23,-995338651) a=i(a,b,c,d,x[j+0],6,-198630844) d=i(d,a,b,c,x[j+7],10,1126891415) c=i(c,d,a,b,x[j+14],15,-1416354905) b=i(b,c,d,a,x[j+5],21,-57434055) a=i(a,b,c,d,x[j+12],6,1700485571) d=i(d,a,b,c,x[j+3],10,-1894986606) c=i(c,d,a,b,x[j+10],15,-1051523) b=i(b,c,d,a,x[j+1],21,-2054922799) a=i(a,b,c,d,x[j+8],6,1873313359) d=i(d,a,b,c,x[j+15],10,-30611744) c=i(c,d,a,b,x[j+6],15,-1560198380) b=i(b,c,d,a,x[j+13],21,1309151649) a=i(a,b,c,d,x[j+4],6,-145523070) d=i(d,a,b,c,x[j+11],10,-1120210379) c=i(c,d,a,b,x[j+2],15,718787259) b=i(b,c,d,a,x[j+9],21,-343485551) a=u(a,o[0]);b=u(b,o[1]);c=u(c,o[2]);d=u(d,o[3])}return y(a)+y(b)+y(c)+y(d)} function send(q,w,x,v){with(document.forms[v])s.value=md5(q+w+x),submit();return!1} Moje pytanie czy jest jakis sposob by ominac te niedogodnosc generowania wielu md5 na serwerze |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 02:39 |