Czy sole są bezużyteczne dla bezpieczeństwa, jeśli atakujący je zna?
Powiedzmy, że mam skonfigurowaną tabelę użytkowników:
CREATE TABLE `users` (
`id` INTEGER PRIMARY KEY,
`name` TEXT,
`hashed_password` TEXT,
`salt` TEXT
)
Gdy użytkownik jest tworzony, generowana jest losowo sól i jest przechowywana w bazie danych wraz z wynikami czegoś podobnegoget_hash(salt + plaintext_password)
.
Zastanawiam się, czy jeśli złośliwy użytkownik zdobędzie te dane, czy będzie w stanie wykorzystać je do złamania haseł użytkowników? Jeśli tak, to w jaki sposób można temu zapobiec?