逐行读取文件然后哈希它们,在php中给出错误的输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逐行读取文件然后哈希它们,在php中给出错误的输出相关的知识,希望对你有一定的参考价值。

当我尝试在我的网站中散列我的所有用户密码时,首先我将所有密码保存在文件中然后我尝试哈希它们,但我意识到它给了我错误的哈希而不是真正的哈希,

我尝试了2个功能但结果相同,这是php代码解释的一切

**文件little.txt只有1个字“密码”

md5()函数:

echo md5("password"); #5f4dcc3b5aa765d61d8327deb882cf99

file()函数然后md5行:

$openfile = file("little.txt");
foreach($openfile as $lines){
    echo $lines.' : '.md5($lines); #286755fad04869ca523320acce0dc6a4
}

fopen()函数:

if ($file = fopen("little.txt", "r")) {
    while(!feof($file)) {
        $lines = fgets($file);
        echo $lines.' : '.md5($lines); #286755fad04869ca523320acce0dc6a4
    }
    fclose($file);
}

我想当我在调用文件时添加一些空格或其他东西,

EDITED

对不起家伙我读了更多关于哈希和加密之间的区别,我编辑了这篇文章。

关于哈希密码我现在用它

md5(sha1($passwords . $various_salts))

非常感谢您的回复,它真的帮助了我:)

答案

fgetsfile的返回值包括行尾。

您可以先通过rtrim($line, " ");运行值,也可以使用file的以下选项:

$openfile = file("little.txt", FILE_IGNORE_NEW_LINES);

这将删除你的行尾。

编辑:正如评论中提出的问题所证明的,这是解决问题的一种相当奇怪的方法。想一想为什么需要将所有这些密码存储在一个文件中(散列或其他)。

以上是关于逐行读取文件然后哈希它们,在php中给出错误的输出的主要内容,如果未能解决你的问题,请参考以下文章

如何逐行读取 Matlab mex 函数的输入矩阵?

如何逐行读取 Matlab mex 函数的输入矩阵?

逐行读取文件的最快方法? [复制]

逐行读取文本文件并将这些行放入Java中的列表中

使用 Bash 逐行读取文件

如何读取文本文件(逐行)并使用输出作为 nameS 在 java 中创建 .pdf 文件?