PHP 分别对每一行进行 MD5 散列的脚本
PHP Script to MD5 Hash Each Line Separately
我正在尝试创建一个可以 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
您输入的字符串中的行由 \r\n
分隔,但在您的服务器上 PHP_EOL
设置为 \n
。因此,当您将输入拆分为多行时,除最后一行外,每行末尾都有一个 \r
。 echo md5("apples\r");
产生 265f78fc274d8428fd63dabc24400cb4
.
使用 trim()
删除多余的空格。
$content .= md5(trim($ids[$i])).'<br>';
您的输入数据中有空格。并且不要在内存中收集所有 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])));
}
}
?>
我正在尝试创建一个可以 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
您输入的字符串中的行由 \r\n
分隔,但在您的服务器上 PHP_EOL
设置为 \n
。因此,当您将输入拆分为多行时,除最后一行外,每行末尾都有一个 \r
。 echo md5("apples\r");
产生 265f78fc274d8428fd63dabc24400cb4
.
使用 trim()
删除多余的空格。
$content .= md5(trim($ids[$i])).'<br>';
您的输入数据中有空格。并且不要在内存中收集所有 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])));
}
}
?>