sha1 在密码加密中不起作用
sha1 is not working in password encryption
我正在使用 sha1 加密来加密我的密码,但我遇到了问题。对于某些用户,无法登录。
我的代码,(注册中)
// all validation is done here
$password = sha1($_POST['password']);
// inserting data is here
登录时我的查询是
$email = $_POST['email'];
$password = sha1($_POST['password']);
select * from users where email = $email and password = $password and status = 1 and deleted = 0;
其中一位用户遇到密码问题,
im$$man
我是不是做错了什么。
请帮助我。
嗯,问题就在这里,
sha1 将 im$$man
中的 $man
视为变量,因此它将被评估为 null,因为您对此没有任何价值。
类似这样的事情,
sha1("im$$man");// will echo 17cf5ec2752a9a7f0077c904f60b64f23ba2534d
也等于
sha1("im$");// will echo 17cf5ec2752a9a7f0077c904f60b64f23ba2534d
$man is evaluated to null.
两个输入的输出相同(虽然输入不同)
要获得预期结果,请避免使用双引号,
sha1('im$$man');// this will give correct output
输出是
850caa44549443778fe005f466766d5d6d413692// correct output.
与
类似的问题
I am using sha1 encryption for encrypting my password,
没有。 SHA1 不是加密,而是哈希函数。 Understanding the difference between encrypting and hashing 对于安全实施这一点至关重要:
此外,您编写查询的方式让我相信它容易受到 SQL injection。
我正在使用 sha1 加密来加密我的密码,但我遇到了问题。对于某些用户,无法登录。
我的代码,(注册中)
// all validation is done here
$password = sha1($_POST['password']);
// inserting data is here
登录时我的查询是
$email = $_POST['email'];
$password = sha1($_POST['password']);
select * from users where email = $email and password = $password and status = 1 and deleted = 0;
其中一位用户遇到密码问题,
im$$man
我是不是做错了什么。
请帮助我。
嗯,问题就在这里,
sha1 将 im$$man
中的 $man
视为变量,因此它将被评估为 null,因为您对此没有任何价值。
类似这样的事情,
sha1("im$$man");// will echo 17cf5ec2752a9a7f0077c904f60b64f23ba2534d
也等于
sha1("im$");// will echo 17cf5ec2752a9a7f0077c904f60b64f23ba2534d
$man is evaluated to null.
两个输入的输出相同(虽然输入不同)
要获得预期结果,请避免使用双引号,
sha1('im$$man');// this will give correct output
输出是
850caa44549443778fe005f466766d5d6d413692// correct output.
与
I am using sha1 encryption for encrypting my password,
没有。 SHA1 不是加密,而是哈希函数。 Understanding the difference between encrypting and hashing 对于安全实施这一点至关重要:
此外,您编写查询的方式让我相信它容易受到 SQL injection。