2009-11-22 11 views
10

Kiedy użytkownicy rejestrują się, czy powinienem przechowywać ich pocztę e-mail w bazie danych tak jak jest lub hash. Chcę móc odszyfrować go później, więc czy powinienem używać md5?php - Czy należy szyfrować adresy e-mail?

dziękuję!

+6

Hashing (więcej lub mniej) zapobiega odszyfrowywaniu. Więc na pewno nie chcesz tego robić. – Quentin

+1

Nienawidzę tego, kiedy ludzie głosują na takie pytanie. To nie tak, że udziela złej rady, zadaje pytanie i koncepcję, którą chce się pozbyć. I Up zagłosowało z powrotem na 0. –

+0

Powinieneś hash() wszystkie e-maile i zachować oddzielną tabelę z kluczem/parami, dzięki czemu można tę ostatnią odtajać ostatnią! ps. po prostu żartuję (koder humor) – Frankie

Odpowiedz

16

Nie, md5() - to one-way hash function. Nie można odszyfrować jego wartości. Zwykle jest używany do haseł, które nie wymagają deszyfrowania. Zamiast porównywać skrótów jak:

$salt = "adding some secret to increasse security"; 
if (md5($user_password . $salt) == $user_password_hash_from_db) { 
    ## password is ok 
} 

Jeśli chcesz być w stanie odszyfrować swoją wartość, a następnie użyj funkcji php zamiast crypt. Ale może wymagać zainstalowania dodatkowych modułów.

W żaden sposób nie widzę żadnego praktycznego powodu do szyfrowania wiadomości e-mail.

+2

oczywiście używanie solonego skrótu do przechowywania haseł byłoby dobrym pomysłem. – tosh

+1

Tak, udawaj, że wszyscy i ich mama wiedzą, że "md5 ('password') == '5f4dcc3b5aa765d61d8327deb882cf99'", ponieważ każdy kraker, który ma znaczenie, będzie wiedział. – Kzqai

+0

@tosh: Masz całkowitą rację. Zaktualizowałem odpowiedź. –

3

Nie jest powszechne szyfrowanie adresów e-mail. Jeśli ktoś naprawdę chce zachować prywatność e-maili, nie dałby go w pierwszej kolejności :)

+1

Nowoczesne schematy spamowania implikują inaczej. Listy e-mailowe mają wartość w prywatności, którą reprezentują. Wartość jest niewielka, szczególnie w porównaniu z hasłami, ale jest tam, więc metoda szyfrowania jest korzystna, ale w przypadku poczty e-mail z pewnością musi to być metoda odwracalna. – Kzqai

0

Podczas korzystania z programu md5 nie będzie można go odszyfrować. md5 to funkcja one-way -hash.

0

md5 nie jest metodą szyfrowania jest mieszanką jednokierunkową. Nie ma powodu do szyfrowania adresów e-mail w bazie danych. Pozostawiłbym je tak, jak jest.

1

MD5 to skrót, który sprawia, że ​​niemożliwe jest odzyskanie pierwotnej wartości. Powinieneś użyć szyfrowania zamiast skrótu, jeśli chcesz odzyskać e-mail.

0

Jeśli zamierzasz odszyfrować je później MD5 nie będzie opcją, ponieważ tylko mieszań strun, tracisz oryginalne dane.

Proponuję wypróbować niektóre z wbudowanych funkcji szyfrowania PHP.

0

Inne odpowiedzi mówią wszystko.

Jednak powinien zawsze szyfrowania hash haseł z co najmniej md5() i soli, jak wskazano w odpowiedzi Iwana.

1

Zgadzam się, że wiadomości e-mail to (mniejszy) problem z bezpieczeństwem informacji, ponieważ stają się one danymi osobistymi, które wprowadziłeś do świata, jeśli ktoś uzyska dostęp do Twojej bazy danych, ale będziesz chciał szyfrowania dwukierunkowego/metoda odszyfrowywania, aby móc wycofywać wiadomości e-mail z powrotem, o czym wspomniał Ivan.

Należy pamiętać, że podstawowe hashowanie MD5 nie jest bezpiecznym hashem.

jak Wikipedia mówi na wiele różnych sposobów, nie jest już bezpieczny (http://en.wikipedia.org/wiki/MD5):

US-CERT z amerykańskiego Departamentu Bezpieczeństwa Wewnętrznego powiedział MD5 „powinno być uważane za kryptograficznym uszkodzony i nie nadają się do dalszego użyj "[7] , a większość amerykańskich aplikacji rządowych będzie musiała przejść do rodziny funkcji skrótu SHA-2 do roku 2010.[8]

myślę jeden poważny problem z tym, że istnieje tęczowe tablice z MD5 wszystko w tych dniach, więc gołe md5 jest bardzo podatna na brute zmusza.

Uważa się, że jest to przydatne narzędzie do niewielkiej obsfokalizacji i odkażania złożonych zestawów danych, ale nie jest to już prawdziwie bezpieczny haszysz. Mogą istnieć specjalne obręcze, które można przeskoczyć, jak obie, używając soli i wykonując zagnieżdżone skróty md5, aby były bezpieczniejsze, chociaż nie jestem kryptografem. Możesz sprawdzić inne wątki SO, takie jak this dla dobrych ogólnych rozwiązań szyfrowania.

+1

MD5 nigdy nie było "bezpiecznym szyfrowaniem"; nie jest już tak bezpieczny jak haszysz. –

+0

Tak, szkoda, że ​​nie używam precyzyjnej terminologii. Zmieniono i wykonano CW. – Kzqai