önceki şifrelemek karşılaştırın () yeni ENCRYPT ile çağrı () çağrısı mysql

1 Cevap php

Ben ENCRYPT () fonksiyonu ile mysql bir dize depolama ediyorum. Ben bu dize eşleşen bir satır getirme istiyorum, ama yeni ENCRYPT () çağrısı bana farklı bir değer verir, bu yüzden maç asla.

This is expected as i'm not (and can't) give it a consistent salt: http://dev.mysql.com/doc/refman/5.0/en/encryption-functions.html#function_encrypt

Hiçbir salt argüman verilirse, rastgele bir değer kullanılır.

Bu benim boş döndüren koşuyorum sorgu:

SELECT * FROM `table` WHERE ENCRYPT('string') = `enc_string`

Ben bu bir 3. parti uygulama tarafından kullanılıyor, çünkü bu mümkün olduğunu biliyorum, ama onlar bunu kendi sorgu bulamıyorum. Önceki tuz kullanmak için şifrelemek zorlamak, ya da tahmin etmek için bir yolu var mı?

1 Cevap

Eğer hiç tuz ile şifrelemek (), rastgele bir tuz (2 harf) kullanıyorsanız oluşturulan ve şifrelenmiş dize eklenir.

Sonraki çağrılarda size şifrelemek için aynı tuz geçmesi gerekiyor. Sadece, tuz gibi bütün şifreli dize iletebilirsiniz

   encrypt(user_input, encrypted_password) = encrypted_password