PHP-将单词分解为数组

PHP-将单词分解为数组,php,Php,我已经做了大量的谷歌搜索和诸如此类的工作,但找不到我想要的东西 我正在加紧我的网站的认证工作。我决定获取用户的凭据,然后对其进行哈希/加盐处理。然后将这些值存储在数据库和用户cookie中。我修改了我在PHP网站上找到的一个脚本,到目前为止它工作得很好。但是,我注意到,当使用array_rand时,它会按顺序从预定义字符串中选择字符。我不喜欢这样,所以我决定在数组上使用洗牌。工作得很好 下一个!我认为将我的用户输入的密码转换成一个数组,然后将其与我的salt数组合并会很聪明!嗯,我很难将用户的密

我已经做了大量的谷歌搜索和诸如此类的工作,但找不到我想要的东西

我正在加紧我的网站的认证工作。我决定获取用户的凭据,然后对其进行哈希/加盐处理。然后将这些值存储在数据库和用户cookie中。我修改了我在PHP网站上找到的一个脚本,到目前为止它工作得很好。但是,我注意到,当使用array_rand时,它会按顺序从预定义字符串中选择字符。我不喜欢这样,所以我决定在数组上使用洗牌。工作得很好

下一个!我认为将我的用户输入的密码转换成一个数组,然后将其与我的salt数组合并会很聪明!嗯,我很难将用户的密码转换为数组。我希望密码中的每个字符都是数组条目。也就是说,如果你的密码是“cool”,数组将是,数组0=>c1=>o2=>o3=>l,等等。我曾尝试用word拆分字符串,然后用指定的中断字符将其分解,但没有效果。我想我可以用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 />";
$strings=wordwrap($string,1,“|”);
回显$strings。“
”; $stringe=分解(“|”),$strings,1); 印刷品($stringe); 回声“
”; echo“这是分解的密码字符串,用于与盐混合。
”;

非常感谢:)

您需要的php函数是str\u split

str_split('cool', 1);
它将返回,如上所述使用

[0] => c
[1] => o
[2] => o
[3] => l

由于PHP的松散类型,如果您将字符串作为数组处理,PHP可能会实现您所期望的功能。例如:

$string = 'cool';
echo $string[1]; // output's 'o'.

除非您真的知道自己在做什么,否则永远不要实施(或者在本例中,也不要设计!)加密算法。如果你决定继续做下去,不管怎样,你将把你的网站置于危险之中。
没有必要这样做:肯定有库和/或函数可以完成所有这类工作。

这与松散键入无关,只是称为子字符串访问,不能误认为是数组。嘿,bulk,谢谢你提供的信息。实际上,我已经探索过了,但试图将单词拆分为array_rand的实际数组,效果并不太好。当然,除非array\u rand可以将字符串视为数组。。。我只是觉得不会。谢谢你提供的信息:)对不起,我希望我可以编辑,我的意思是数组合并。呃,谢谢你提醒我。我最终将使用MD5来散列混合的salt/密码。最终的计划是,创建一个salt,混合密码、md5 salt、md5密码,然后将每个密码的哈希值放在一起,并对该字符串进行哈希,然后将其用作DB凭证/cookie凭证。我希望这将防止彩虹表攻击用户的常用密码和/或用户名。然后,我最终希望能够实现ssl/tls来保护cookie细节的传输,以防止MITM。听起来可以吗?谢谢:)我听说MD5真的很受推荐,因为对它的威胁越来越大。我也听说过沙阿。你能推荐SHA256吗?MD5唯一固有的缺点是用户输入本身很弱,这不是真的吗?这就是我计划使用30个字符的盐的原因。但无论如何我都不是大师。永远学习!你很可能是对的。我根本不是一个密码专家,所以我不能在SHA256上发言,但我读到的是MD5不是很“抗冲突”。若要过度简化,请想象一个哈希算法,该算法生成一个位哈希0或1。因为只有两个可能的散列和无限多的输入,所以会有很多冲突。冲突抵抗是指任何类型输入的“0哈希”和“1哈希”数量相等(或接近)。MD5没有此属性。概述此漏洞。@Shawn:有关如何存储密码的直截了当的文章,请参阅(然后在此处获取用于PHP的bcrypt实现)。当您需要帮助用户创建强密码时,请参阅XKCD。这非常有效!非常感谢你,哥伦布!总是需要学习:)以你的方式发送好的((共鸣))!男人们也不会使用
explode
它不可能有一个空的delimter:)只是想提一下