Tämä on aivan typerä salasanan suojaus, mutta toimii kuitenkin.
Hiemahkon raskas. Käyttäkää vaan sitä perinteistä md5() tai sha1() funkkaria salasanojen suojaamisessa.
Mutta jotta tämä olisi oikeasti toimiva, sotketaan salasanan sekaan hashiksi käyttäjänimikin :P
<?php function megahash($pass, $user) { $length['pass'] = strlen($pass); $length['user'] = strlen($user); $password = md5(md5(crc32(sha1($pass).$length['pass'])).$user.crc32($length['user']+$length['pass'])); $new_password = $password; $md5 = array(); for($i=1;$i<=$length['pass']+$length['user']+200;$i++) { $md5[$i] = md5($user.md5(sha1($user.$i.md5($password[8].sha1($password[0])).$password[31])).$i); for($u=1;$u<=$length['pass'];$u++) { $md5[$i] .= md5($md5[$i].md5($md5[$i]).$password.$pass[0].base64_encode($user.md5($pass).$length['user']).hash("haval160,4", (($i*$u)-($u/$i)+crc32($u))).$pass[$length['pass']-1].(($i*$u)-($u/$i)+crc32($u)).$length['pass'].md5($password[5].$u)); $md5[$i] .= crc32($user)+round(crc32($u*$i*(($length['user']*$u)/$u+$i).$user)/crc32(($u+$length['pass'])/$i)*(($length['pass']*$i)/$u+$length['user'])); $md5[$i] .= md5($md5[$i].$md5).$user.sha1($user).round($u+$i/$length['user']).rad2deg($length['user']).hash("haval160,4", (($i*$u)-crc32(($u+$length['pass'])/$i)+crc32($u))); } $new_password .= md5(md5(crc32($md5[$i])).hash("MD5",hash("MD4",hash("haval160,4", $user.$i))).round($i*$u/$length['user']).$i.md5(sha1($length['pass']).$pass[$length['pass']-1]).$md5[$i].$user); } $count = count($md5); $new_password = $new_password.round(crc32($count)/$count*($length['user']/$length['pass'])).sha1($new_password); return md5(sha1(md5($new_password.crc32($length['pass'].$user).$password.$count.sha1($new_password).($length['user']+$length['pass']*$count))).$count); } echo megahash("salasana", "pentti peruskäyttäjä"); ?>
Perkeleen leiska kuseksii taas.
Mutta ihan kivan näköinen, periaatteessa murtumatonhan tuo on. Aika helvetillisen näköinen joo.
Ja suolaus mukaan :D
Joo, välejä koodiin, ettei mene noin pitkiksi riveiksi.
Aika hirvitys. ;)
Haha, tota ei murretakkaa ihan helposti :D
Aihe on jo aika vanha, joten et voi enää vastata siihen.