Hello,
I'm trying to create a two way encryption algorithm for my users passwords. I need it to be encrypted but without the pre set encrypt pass (what i set)(salt?) the original password cannot be decrypted
Hello,
I'm trying to create a two way encryption algorithm for my users passwords. I need it to be encrypted but without the pre set encrypt pass (what i set)(salt?) the original password cannot be decrypted
To save it:
$userPasswordInput = $_POST['password'];
$salt = // ideally, generate one randomly and save it to the db, otherwise, use a constant saved to the php file
$password = sha1($userPasswordInput . $salt);
Save $password (and preferably $salt) to the db. When comparing, concatenate the salt and the user input, sha1 it (or whichever encryption), then compare it to the saved (encrypted + salted) password.
For a two way encryption this is called "key", not "salt". Check out mcrypt functions.
i did it this way:
create a $user + $password
$saltedHash = md5($salt.$password);
now you have an encrypted password($saltedHash) to save it to the db.
if somebody try to login, you do the same with the inputed password and compare it with the one in the db.
The easiest way (though very wasteful in terms of storage) is to generate a random string and XOR it to the password. (As someone already pointed out, this is called a key, not a salt.) This is called a one-time pad. As the name implies, you cannot reuse the same key for multiple passwords.