为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 脚本到 MD5 分别散列每一行

PHP 脚本到 MD5 分别散列每一行

PHP
DIEA 2021-09-18 10:38:57
我正在尝试创建一个可以 MD5 快速散列多行(50,000+)的脚本。我有一个我一直在尝试制作的脚本,但它有时会给我不同的输出,我不知道为什么。有任何想法吗?  <?php       if(isset($_POST['btn'])){            $value=$_POST['text'];            $ids = explode(PHP_EOL, $value);            $content = '';            for ($i=0;$i<count($ids);$i++){                $content .= md5($ids[$i]).'<br>';            }            echo nl2br($content);     }     ?>当我尝试散列时:apples  bananas  oranges  pineapples结果是:265f78fc274d8428fd63dabc24400cb4  63a63ddf49984e0f1cef336aeb6ca39c  229b1cc78a248c6cea47fa95565dc9ca  019b111ec0c13ed923922715bfb1670a  但我应该得到:daeccf0ad3c1fc8c8015205c332f5b42  ec121ff80513ae58ed478d5c5787075b  91b07b3169d8a7cb6de940142187c8df  019b111ec0c13ed923922715bfb1670a  
查看完整描述

2 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

输入字符串中的行由 分隔\r\n,但在您的服务器PHP_EOL上设置为\n。因此,当您将输入分成几\r行时,除了最后一行之外,每一行的末尾都有一个。echo md5("apples\r");产生265f78fc274d8428fd63dabc24400cb4.

使用trim()删除多余的空格。

$content .= md5(trim($ids[$i])).'<br>';


查看完整回答
反对 回复 2021-09-18
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

您的输入数据中有空格。并且不要在内存中收集所有 50k+ 的哈希值。

尝试这个


<?php  

if(isset($_POST['btn'])){

    $value=$_POST['text'];

    $ids = explode(PHP_EOL, $value);

    for ($i=0;$i<count($ids);$i++){

        echo nl2br(md5(trim($ids[$i])));

    }

}

?>


查看完整回答
反对 回复 2021-09-18
  • 2 回答
  • 0 关注
  • 149 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信