php - 使用 password_hash 加载数据本地 Infile

标签 php mysql password-hash

我正在尝试将 CSV 文件上传到表格中。但是,密码是纯文本,我想在此过程中将其转换为 password_hash。请帮忙。

$sql = "LOAD DATA LOCAL INFILE '".$mylfile."'
   INTO TABLE parentstudent
   FIELDS TERMINATED BY ','
   OPTIONALLY ENCLOSED BY '\"' 
   LINES TERMINATED BY '\n' 
   IGNORE 1 LINES 
   (parentstudent_id, @parent_id, student_id, school_id)
   set parent_id =".password_hash."'(parent_id,".PASSWORD_DEFAULT.")";

$con=mysqli_connect("localhost","root","","confapp");

$result = mysqli_query($con, $sql);

最佳答案

假设有一个名为 clearpwords.csv 的文件,其内容如下:

1,test,1,1
2,testtest,2,1

以下程序将散列第二列。

<?php
// this is needed for any significant number of inputs to password_hash()
set_time_limit(0);

$infile = "clearpwords.csv";
$myfile = "hashedpwords.csv";

$reader = fopen($infile, 'r');
$writer = fopen($myfile, 'w');
$buffer = '';

while ($line = fgetcsv($reader)) {
    $line[1] = password_hash($line[1], PASSWORD_DEFAULT);

    $buffer .= implode(',', $line) . "\n";

    if (strlen($buffer) > 1024) {
        fwrite($writer, $buffer);
        $buffer = '';
    }
}

fwrite($writer, $buffer);
fclose($reader);
fclose($writer);

它将创建一个名为 myfile.csv 的文件,如下所示。

1,$2y$10$KwG1S4w7T4ov71bFSsKhlOW2CpFrMurtZRz3az94o7BX70pmohCb.,1,1
2,$2y$10$zQkH5vDIYLCqkUxxaqH6nuZ67fXj71XiBVjxztvst.dtvSlFqjDou,2,1

您现在可以在 myfile.csv 上运行您的脚本

$sql = "LOAD DATA LOCAL INFILE '".$mylfile."'
        INTO TABLE parentstudent
        FIELDS TERMINATED BY ','
        OPTIONALLY ENCLOSED BY '\"' 
        LINES TERMINATED BY '\n' 
        IGNORE 1 LINES 
        (parentstudent_id, @parent_id, student_id, school_id)";

$con = mysqli_connect("localhost", "root", "", "confapp");
$result = mysqli_query($con, $sql);

请注意 password_hash仅适用于 PHP 5.5 及更高版本。如果您正在运行在此之前的版本并且升级不是一个选项,请使用 crypt函数代替。

不要试图使用 SHA-*MD-*

关于php - 使用 password_hash 加载数据本地 Infile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29525267/

相关文章:

php - Woocommerce 产品类别覆盖

php - 我无法在 mysql 中存储阿拉伯数据,utf8 或 cp1256 没有解决我的问题

php - 从 Mysql 导出 CSV

laravel - 如何将 Laravel 项目密码迁移到 Go 项目?

php - PHP 中的密码验证

php - 重置密码不起作用

php - PHP 中的动态图像生成

php - 获取数据库信息的更好方法

MySQL 使用 PostgreSQL COPY FROM 命令加载数据 INFILE

security - 客户端密码哈希与纯文本