Dla wszystkich jest jasne ( mam nadzieję ), że przechowywanie haseł bez ich solenia / mieszania jest okropnym pomysłem.
A co z e-mailami? Załóżmy, że zachowujesz adres e-mail subskrypcji, jeśli odpowiednio go zaszyfrujesz, wysyłanie wiadomości e-mail do użytkowników może nie być możliwe. Z drugiej strony, jeśli go nie zaszyfrujesz, a baza danych zostanie skradziona, wszyscy użytkownicy ryzykują potencjalnym spamem.
To pytanie nie dotyczy kwestii specyficznych dla prawa (chociaż można je podać, pozostają zależne od kraju) ani szyfrowania samej bazy danych.
Odpowiedzi:
Przechowywanie solonej wartości skrótu adresów e-mail może być włączone, jeśli przechowujesz te rekordy tylko w celu potwierdzenia / uwierzytelnienia konta.
W innych przypadkach wydaje mi się, że szyfrowanie wiadomości e-mail utrudniłoby utrzymanie bazy danych przy jednoczesnym niewielkim zysku.
Prawdopodobnie zabezpieczenie dostępu do samej bazy danych jest lepszym wyborem: zwykle w bazie danych znajduje się wiele innych informacji, których nie chciałbyś gromadzić.
Podobne pytanie na temat Stackoverflow: Czy warto szyfrować adresy e-mail w bazie danych?
źródło
Myślę, że już to wszystko powiedziałeś.
Jedyne, co mogę wymyślić, to nie używać jednokierunkowego filtru skrótu, takiego jak SHA1, do przechowywania adresów e-mail. Użyj pewnego (odwracalnego) szyfrowania klucza publicznego w swojej aplikacji i upewnij się, że twój klucz prywatny nie znajduje się w pobliżu bazy danych, aby nie można go razem „skradzić”.
W ten sposób nadal możesz odszyfrować adresy e-mail, aby wysyłać e-maile,
źródło