Yukarıdaki resimde gösterildiği gibi, parola şifrelenmişse, her zaman birinin düz metin parolasını ayıklayabileceği gizli bir sırdır. Ancak parola karma olduğunda, parolayı karma değerinden kurtarmanın neredeyse hiçbir yöntemi olmadığından rahatlarsınız.
Çıkarılan iyidir - Hashed Şifreler vs Şifreli?
Şifreleme iyi mi?
Düz metin parolalar DES, AES gibi simetrik şifreleme algoritmaları veya diğer algoritmalar kullanılarak şifrelenebilir ve veritabanında saklanabilir. Kimlik doğrulamasında (kimliğin kullanıcı adı ve parolayla onaylanması), uygulama veritabanında saklanan şifreli parolanın şifresini çözer ve eşitlik için kullanıcı tarafından sağlanan parola ile karşılaştırılır. Bu tür bir parola işleme yaklaşımında, birisi veritabanı tablolarına erişse bile parolalar yeniden kullanılamaz. Ancak bu yaklaşımda da kötü bir haber var. Bir şekilde uygulamanız tarafından kullanılan anahtarla birlikte şifreleme algoritması bir şekilde elde edilirse, veritabanınızda saklanan tüm kullanıcı şifrelerini şifre çözme ile görüntüleyebilir. "Bu benim sahip olduğum en iyi seçenek", bir yazılım geliştiricisi çığlık atabilir, ama daha iyi bir yolu var mı?
Şifreleme karma işlevi (yalnızca tek yönlü)
Evet var, belki de bu noktayı kaçırmış olabilirsiniz. Şifresini çözme ve karşılaştırma zorunluluğu olmadığını fark ettiniz mi? Parolanın bazı dönüştürülmüş kelimelere dönüştürülebildiği, ancak ters işlemin (dönüştürülmüş kelimeden parola üretilmesi) mümkün olmadığı tek yönlü bir dönüşüm yaklaşımı varsa. Şimdi birisi veritabanına erişse bile, şifrelerin dönüştürülmüş sözcükler kullanılarak çoğaltılması veya çıkarılması mümkün değildir. Bu yaklaşımda, bazılarının kullanıcılarınızın en gizli şifrelerini bildiği neredeyse hiç olmayacak; bu, birden fazla uygulamada aynı şifreyi kullanan kullanıcıları koruyacaktır. Bu yaklaşım için hangi algoritmalar kullanılabilir?