Jump to content
GSForum - Segélyvonal

Jelszavak titkosítása


google
 Share

Recommended Posts

google

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. :S Igaz ez? Érdemes a titkosítással foglalkozni?

Link to comment
Share on other sites

arpsoft

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.

Link to comment
Share on other sites

Mezofi

É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ó!

:D

Link to comment
Share on other sites

google

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']); ?

Link to comment
Share on other sites

Mezofi

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

Link to comment
Share on other sites

google

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. :hááát: É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ó. :hááát:

Link to comment
Share on other sites

Mezofi

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!

Link to comment
Share on other sites

google

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! :D

Link to comment
Share on other sites

ocsi

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!

Link to comment
Share on other sites

google
...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...

Link to comment
Share on other sites

  • 2 weeks later...
fazy

É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)

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...