我正在使用一个需要对某些表单值进行sha1编码的应用程序。
问题在于,当我使用以下
时<?php echo(hash("sha1","par1=".$_POST['p1']."&par2=".$_POST['p2'])); ?>
它为我提供了实际字符串的sha1编码,而我想获取已发布值的sha1编码,所以在这个例子中我想得到
<?php echo(hash("sha1","par1=firstvalue&par2=secondvalue")); ?>
我怎么能意识到这一点?它实际上是那么简单,我是否想到困难?
答案 0 :(得分:1)
因为它将para1 = some_value标识为字符串而不是para1作为变量和some_value字符串 为了达到你想要的效果,你应该单独散列每个变量
或者我建议你实现自己的编码算法
答案 1 :(得分:0)
为什么不这样做呢?虽然我会以任何一种方式导致同样的事情......
$hash_this = "par1=".$_POST['p1']."&par2=".$_POST['p2'];
echo sha1($hash_this);
虽然如果你想要将值的字符串全部散列在一起而不是值,如果你想存储值 - 那么你可能会这样做 - 那么你应该散列每个值,所以你至少可以比较它们。对于要将密码保存到数据库的登录系统很有用,这比仅存储密码更安全...
$password = sha1($_POST['password']);
如果你对字符串进行散列,你就不知道哪个值是错误的