我做了大量的谷歌搜索和诸如此类的,并且找不到我正在寻找的东西......
我正在努力加强对我网站的身份验证。我决定使用用户的凭据,然后哈希/哈希。然后将这些值存储在DB和用户cookie中。我修改了一个我在PHP网站上找到的脚本,它到目前为止工作得很好。然而,我注意到在使用array_rand时,它将按顺序从预定义字符串中选择字符。我不喜欢这样,所以我决定在array_rand'd数组上使用shuffle。工作得很好。
接着!我认为将用户输入的密码转换为数组是巧妙的,然后将其与我的盐渍阵列合并!好吧,我无法将用户密码转换为数组。我希望他们的密码中的每个字符都是一个数组条目。 IE,如果您的密码是“酷”,则阵列将是,Array 0 => c 1 => o 2 => o 3 => l等等我试过单词拆分字符串然后用指定的中断字符将其爆炸,但这不起作用。我想我可以用for循环,strlen和诸如此类的东西做一些事情,但有一种更优雅的方式。
有什么建议吗?我有点难过:(这是我到目前为止所做的,我没有做到这一点,因为我没有比爆炸性的部分进一步发展。
$strings = wordwrap($string, 1, "|");
echo $strings . "<br />";
$stringe = explode("|", $strings, 1);
print_r($stringe);
echo "<br />";
echo "This is the exploded password string, for mixing with salt.<hr />";
非常感谢你:)
答案 0 :(得分:18)
你想要的php函数是str_split
str_split('cool', 1);
它将返回,用于上面
[0] => c
[1] => o
[2] => o
[3] => l
答案 1 :(得分:3)
感谢PHP松散输入,如果你把字符串视为一个数组,php会很乐意做你想要的。例如:
$string = 'cool';
echo $string[1]; // output's 'o'.
答案 2 :(得分:3)
从不, EVER 实施(或在这种情况下,设计也是如此!)加密算法,除非您真的知道自己在做什么。如果您决定继续这样做,那么您的网站将面临风险。 没有理由你必须这样做:大多数肯定有库和/或函数来完成所有这些事情。