19-01-2011, 06:48 PM
(Modification du message : 19-01-2011, 06:54 PM par Viciousity.)
Ben personnelement j'utilise cela:
En PHP sa devrait donner sa je pense
Cela te permet de créer une clé de décryptage unique par membre et donc d'augmenter grandement la sécurité de ton script
Pour ce faire ta table user au mieux de contenir pass_md5 doit contenir deux nouvea champs: password_salt, password_hash
PS: Etant rubyste mon code PHP est ptet bancal mais l'habitude de l'objet :S
def has_correct_password? submitted_password
password_hash == encrypt(password_salt, submitted_password)
end
def secure_account password
self.password_salt = encrypt(Time.now,password) unless password_salt
self.password_hash = encrypt(password_salt, password)
end
private
def encrypt string1, string2
require 'digest'
Digest::SHA256.hexdigest("#{string1}::#{string2}")
end
En PHP sa devrait donner sa je pense
function encrypt(string1,string2){
return md5("'.$string1.'::'.$string2.'");
}
password_salt = encrypt(time(),$_POST['pass']);
password_hash = encrypt(password_salt,$_POST['pass']);
function has_correct_password(user_login,password){
user = "SQL pour le récupérer avec login";
if (!empty(user) || isset(user)){
if (user['password_hash'] == encrypt(user['password_salt'], password)){ return true; }
else { return false; }
}
else { return false; }
}
// Pour vérifier un membre:
if(has_correct_password("Lambda","motdepasse")){
SESSION REGISTER
}
Ruby plus dur ??? (joke a part )Cela te permet de créer une clé de décryptage unique par membre et donc d'augmenter grandement la sécurité de ton script
Pour ce faire ta table user au mieux de contenir pass_md5 doit contenir deux nouvea champs: password_salt, password_hash
PS: Etant rubyste mon code PHP est ptet bancal mais l'habitude de l'objet :S