当用户创建密码时,我将其哈希(包括盐)并将其保存在数据库中.
现在,当用户想要更改他或她的密码时,我想测试新密码是否与旧密码太相似(我已经看到这在不同的服务上完成,特别是在线银行).
所以,我以为我会使用similar_text或levenshtein功能.如果用户必须输入他或她的旧密码,这就有效.
但是当用户忘记密码并且需要重置密码时,显然不必输入旧密码.所以我需要将新密码与旧密码(保存在数据库中)进行比较,我在纯文本中没有哈希.
现在,当我使用相同的盐散列新密码,并将其与旧密码(散列)进行比较时,我显然无法测试新密码和旧密码是否相似.
我只是想知道公司如何做到这一点,当他们不将密码保存为数据库中的纯文本时?
我在谷歌上找不到任何有用的东西.如果有人有任何建议或链接到更详细讨论这个问题的文章,我会很感激,如果他们可以分享它们.
var arr=[];
$('.element').each(function(i)
{
arr.push({"id":i,"value":$(this).attr('data-value')});
});
$.get('/json.php?arr='+arr,function(result)
{
alert(result);
});
Run Code Online (Sandbox Code Playgroud)
<?php
$j = json_decode($_GET['arr'], true);
foreach($j as $k => $v)
{
echo $v['id'].':'.$v['value'].'<br />';
}
?>
Run Code Online (Sandbox Code Playgroud)
但问题是URL看起来像/json.php?arr=[object Object],[object Object]而不是/json.php?arr=[{"id":1,"value":"value 1"},{"id":2,"value":"value 2"}].我需要将对象转换为字符串吗?但我不想使用除JQuery之外的其他库.这可能吗?:/