google Posted July 26, 2005 Posted July 26, 2005 Még egy kérdésem van: Hogyan lehetne a jelszavakat titkosítani? Egy esetben azonban le is kell kérdeznem az adatbázisból, és összehasonlítanom a felhasználó által beírttal. De olyat is hallottam, hogy a posttal való küldés során akit érdekel, az úgyis el tudja csípni. Igaz ez? Érdemes a titkosítással foglalkozni?
arpsoft Posted July 26, 2005 Posted July 26, 2005 Karakterenként xor mûvelet. Az algoritmus alapja: A xor B = C C xor B = A Tehát ugyanazzal rutinnal elvégezhetõ a kódolás és a dekódolás is.
Mezofi Posted July 26, 2005 Posted July 26, 2005 Én a követlezõt csinálom. Mikor regisztrál, a változó értékét az md5() függvénnyel titkosítom és így rakom el az adatbázisba (csak egyoldalú titkosítás). Mikor bejelentkezik a változó értékét újra md5()-el átalakítom és ezt hasonlítom össze az adatbázissal. Gyakorlatilag a jelszó visszafejthetetlen, csak az ismeri aki adta, persze ha valakinek van hozzáférése az adatbázishoz akkor neki nem kell az eredeti jelszó!
google Posted July 26, 2005 Author Posted July 26, 2005 Ez nagyon jó ötletnek tûnik... errõl az md5 nevû eljárásról már hallottam korábban is, de egyszerûen még rákeresve sem találtam róla hasznos információt. egyszerûen $password = md5($HTTP_POST_VARS['password']); ?
Mezofi Posted July 26, 2005 Posted July 26, 2005 Szerintem úgy is jó, nálam csak a zárójelen belül van változtatás. $password=md5($_POST["password"]); Elég hosszú kód lesz, ezért az adatbázisban adj neki elég karakter helyet! Csinálj egy echo $password próbát, és meglátod az eredményt. Az md5() A sztring MD5-típusú digitális kivonatát adja vissza. Itt találsz róla többet
google Posted July 26, 2005 Author Posted July 26, 2005 Tetszik. Kipróbáltam, mindenbõl - függetlenül attól, hogy hány karakterbõl áll - 32 karakteres, szuperbiztosnak tûnõ stringet kreál. Az azonos stringbõl mindig ugyanolyan stringet generál. Ez nagyon jó az összehasonlításkor, de... ha ugyanaz a végeredmény, akkor visszafejthetõ, nem? Például megjegyzem az ilyen láncot, és ha valahol ezt látom, akkor tudom, mibõl készült. Értelmesebben megfogalmazva, akkor lehet olyan programot írni, amely véletlenszerû jelszavakat generál, ezeket md5-tel titkosítva eltárolja egy adatbázisban, majd minden beírt - md5-tel titkosított jelszónál - visszakeres, hozott-e õ is már létre ugyanilyen stringet. És ha igen, akkor ott van mellette a kiindulási alap is, a titkosítatlan jelszó.
Mezofi Posted July 26, 2005 Posted July 26, 2005 De, ha nem mindig ugyanazt a kódot eredményezi akkor nem fogja tudni összehasonlítani az adatbáziban lévõvel. Értem, lehet egy véletlenszámmal kiegészíteni a beírt kódot, és akkor megint más a kód, de a felhasználó már nem azt a kódot kapja amit meg tud jegyezni. A lottó csak 90 számból 5, és mégis kicsi az esélye a teli találatnak, itt még kisebb az esély annak, hogy ha megjegyzed a 32 karaktert akkor találsz egy teljesen ugyanolyan 32 karaktert mégegyszer. Szerintem, de a feltörhetetlen kódot még keresik! Egyébként a törvény elõirja, hogy ha a személyt azonositani lehet a tárolt adatokkal, akkor ezen adatokat védeni kell, mert ha kiderül, hogy az adatok tõled szivárogtak ki megbüntetnek. Ezért minél jobban törekedni kell a tárolt adatok biztosításával!
google Posted July 26, 2005 Author Posted July 26, 2005 Igen, egyetértek, ráadásul ez - az igen nagy lélegzetvételû munka egyébként - nem csak a honlapom lesz, hanem egy vizsgamunkám is. Jól is néznék ki titkosítatlan jelszavakkal!
ocsi Posted July 26, 2005 Posted July 26, 2005 Néhány megjegyzés: minden kód visszafejthetõ.... DE az md5 valahogy nem karakterenként kódol tehát az 'a' betû nem mindig "oasdhfnj322" (ez csak példa) szóval ha megjegyzed a jelszavadat: almafa és tudod hogy ez md5 el kódolva mit ad... akkor ha máshol látod ezt a kódsort tudni fogod, hogy a jelszó almafa... Egy apró megjegyzés: A jelszótitkosításra nem csak a php alkalmas, hanem az MySQL is! Nem vagyok teljesen tisztában az eljárás elvi hátterével, de a könyvem Hash-nek nevezi. Az insert into nál kell használni: password('$_POST[jelszo]') És úgyan így kell ugyan így kell lekérdezni is!
google Posted July 26, 2005 Author Posted July 26, 2005 ...szóval ha megjegyzed a jelszavadat: almafa és tudod hogy ez md5 el kódolva mit ad... akkor ha máshol látod ezt a kódsort tudni fogod, hogy a jelszó almafa... Ennél viszont komolyabb, ha írsz egy programot, ami maga generál jelszavakat, majd eltárolja titkosítva, Te csak beírod a látottat, és õ megkeresi ezt, majd kiírja, mibõl készítette... Persze ehhez rengeteg, több millió adat kell, dehát elvileg lehetséges...
fazy Posted August 8, 2005 Posted August 8, 2005 Én használok jelszó titkosítást mind mysql mind file-ban. az én módszerem: <input type=password name=jelszform> $jelszo = crypt(jelszo); $jelszof = crypt($jelszoform); ennek a kimenete ha: echo $jelszo; után egy szép kis karaktersor lesz. utána ezt tárolom valahol, és egy összehasonlítással ellenörzöm. if ($jelszo == $jelszof) { echo "Bejelentkeztél"; } else { echo "hibás jelszó"; Háát röviden ennyi... (én az apache authentikálását biztonságosabbnak tartom)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now