在PHP中实现“openssl passwd -1”

时间:2017-03-10 16:11:22

标签: php md5 php-openssl

命令“openssl passwd -1”使用基于MD5的BSD密码算法1来计算字符串哈希值。

示例:

openssl passwd -1
$1$./j/us.N$P2tq6IkO0Zu2d3uqkEHpv.

如何在PHP中实现完全相同的功能?我希望它是一个原生的PHP函数,而不是exec / shell_exec返回的东西。

1 个答案:

答案 0 :(得分:-1)

示例代码

<?php
define('KEY', 'scret key');

function encrypt($value)
{
    $iv = openssl_random_pseudo_bytes(16);
    $encrypt = openssl_encrypt($value, 'AES-128-CBC', KEY, 0, $iv);    
    return base64_encode($encrypt . ':::' . $iv);
}

function decrypt($data)
{
    $data = base64_decode($data);
    list($data, $iv) = explode(':::', $data);    
    return openssl_decrypt($data, 'AES-128-CBC', KEY, 0, $iv);
}


$enc = encrypt('password');

echo decrypt($enc);