Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Salt实现PHP双向加密_Php_Encryption - Fatal编程技术网

用Salt实现PHP双向加密

用Salt实现PHP双向加密,php,encryption,Php,Encryption,我正在尝试为我的用户密码创建一个双向加密算法。 我需要对其进行加密,但如果没有预设的加密通行证(我设置了什么)(salt?)原始密码无法解密听起来您希望使用单向加密哈希,而不是双向加密。以下是最佳做法密码存储和验证的一个很好的示例: 要保存它,请执行以下操作: $userPasswordInput=$\u POST['password'] $salt=//理想情况下,随机生成一个并将其保存到db,否则,使用保存到php文件的常量 $password=sha1($userPasswordInput

我正在尝试为我的用户密码创建一个双向加密算法。
我需要对其进行加密,但如果没有预设的加密通行证(我设置了什么)(salt?)原始密码无法解密

听起来您希望使用单向加密哈希,而不是双向加密。以下是最佳做法密码存储和验证的一个很好的示例:

要保存它,请执行以下操作:

$userPasswordInput=$\u POST['password']

$salt=//理想情况下,随机生成一个并将其保存到db,否则,使用保存到php文件的常量

$password=sha1($userPasswordInput.$salt)


将$password(最好是$salt)保存到数据库。比较时,将salt和用户输入连接起来,sha1(或任何加密),然后将其与保存的(加密+salt)密码进行比较。

听起来您希望使用单向加密哈希,而不是双向加密。以下是最佳做法密码存储和验证的一个很好的示例:

要保存它,请执行以下操作:

$userPasswordInput=$\u POST['password']

$salt=//理想情况下,随机生成一个并将其保存到db,否则,使用保存到php文件的常量

$password=sha1($userPasswordInput.$salt)


将$password(最好是$salt)保存到数据库。比较时,将salt和用户输入连接起来,sha1(或任何加密),然后将其与保存的(加密+salt)密码进行比较。

对于双向加密,这称为“密钥”,而不是“salt”。签出函数。

对于双向加密,这称为“密钥”,而不是“salt”。签出函数。

我是这样做的:

创建$user+$password

$saltedHash = md5($salt.$password);
现在您有了一个加密密码($saltedHash)来将其保存到数据库中

如果有人尝试登录,您将对输入的密码执行相同的操作,并将其与数据库中的密码进行比较。

我是这样做的:

创建$user+$password

$saltedHash = md5($salt.$password);
现在您有了一个加密密码($saltedHash)来将其保存到数据库中


如果有人尝试登录,您可以对输入的密码执行相同的操作,并将其与数据库中的密码进行比较。

最简单的方法(尽管在存储方面非常浪费)是生成一个随机字符串并将其与密码异或。(正如有人已经指出的,这叫做钥匙,而不是盐。)这叫做钥匙。顾名思义,不能对多个密码重复使用同一个密钥。

最简单的方法(尽管在存储方面非常浪费)是生成一个随机字符串并将其与密码异或。(正如有人已经指出的,这叫做钥匙,而不是盐。)这叫做钥匙。顾名思义,您不能对多个密码重复使用同一密钥。

我认为这对加密有效,但是。我不能用$salt解密它并找回密码??我想这可以用于加密,但是。我无法使用$salt解密它并获取密码??我将在多个运行PHP的服务器/站点上使用它。大多数都没有安装该扩展。更新每个服务器/站点也很难。我需要phpI内置的一些东西。我只是想找几个函数来编码和解码散列,我希望散列只有在使用正确的键(编码时输入的键)时才可解码。我将在运行PHP的多个服务器/站点上使用它。大多数都没有安装该扩展。更新每个服务器/站点也很难。我需要phpI内置的东西。我只是想找几个函数来编码和解码哈希,我希望哈希只有在使用正确的密钥(编码时输入的密钥)时才可解码。加密数据在使用同一密钥时始终可以解密。这就是问题所在。我猜你的意思是,加密数据在使用同一密钥时总是可以解密的。这就是问题所在。我想你的意思是。