我正在处理一个需要对某些表单值进行sha1编码的应用程序。
问题是当我使用下面的
<?php echo(hash("sha1","par1=".$_POST['p1']."&par2=".$_POST['p2'])); ?>
它给了我一个sha1编码的实际字符串,而我想得到一个sha1编码的张贴值,所以在这个例子中,我想得到
<?php echo(hash("sha1","par1=firstvalue&par2=secondvalue")); ?>
我怎么能意识到这一点?它真的那么简单吗?我想的太难了吗?
这是因为它将para1=some_value标识为字符串而不是para1为变量和some_value字符串要达到你想要的效果,你应该单独散列每个变量
或者我建议你实现自己的编码算法
为什么不这样做呢?尽管我认为两种方式都会得到相同的结果....
$hash_this = "par1=".$_POST['p1']."&par2=".$_POST['p2'];
echo sha1($hash_this);
如果您想对所有值的字符串进行散列,而不是对值进行散列,那么如果您想存储值,那么您可能应该对每个值进行散列,这样您至少可以稍后对它们进行比较。对于想要将密码保存到数据库的登录系统非常有用,这比仅仅存储密码更安全…
$password = sha1($_POST['password']);
如果你散列字符串,你不知道哪个值是错的