CodeIgniter Şifreleme Sınıf - Nasıl yaparım?

2 Cevap php

Ben çalışıyor CI kullanarak bir kayıt sayfası oluşturduk. Ancak, (aşağıdaki kod parçacığını bakınız) sha1 kullanarak şifreyi kodlanmış, ve şimdi bir giriş sayfası oluşturmak için plan, ben kullanıcı giriş sayfasında girdiği şifre sha1 kullanılarak kodlanan bu şifre depolandığı gibi aynı olup olmadığını kontrol etmek gerekir veritabanında. Ancak, ben sadece sha1 olmayan çözülebilir olduğunu fark etti.

Peki nasıl giriş amaçlar için bu şifreyi çözmek sonra hem şifrelemek CI şifreleme sınıfını kullanın ve do? Herhangi bir yardım takdir edilecektir. Şimdiden teşekkürler.

fonksiyonu register_user ($ username, $ password, $ isim, $ email, $ activation_code) {

 $sha1_password = sha1($password);  
 $query_str = "INSERT INTO table_name (username, password, name, email, activation_code) >VALUES (?,?,?,?,?)";    


$this->db-query($query_str, array($username, $sha1_password, $name, $email, $activation_code));

}

2 Cevap

Sadece eşitlik karşılaştırarak, şifresi gerek yoktur. Bu kullanıcı tanımlama için gerekli bütün olduğunu.

Şifreleme / şifre çözme CodeIgniter Şifreleme sınıfını sağlamak için: http://codeigniter.com/user_guide/libraries/encryption.html

If you need to be able to retrieve the password, you should encrypt your password (reversible process) instead of hashing them (one-way) : http://codeigniter.com/forums/viewthread/203341/. Anyway, you should use relevant hashing method to handle password. For instance Bcrypt http://www.phptherightway.com/#password_hashing_with_bcrypt

Diğer iyi okuma: http://codahale.com/how-to-safely-store-a-password/