【问题标题】:Implementing "openssl passwd -1" in PHP在 PHP 中实现“openssl passwd -1”
【发布时间】:2017-03-10 16:11:22
【问题描述】:

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

例子:

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

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

【问题讨论】:

标签: php md5 php-openssl


【解决方案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);

【讨论】:

  • 问题是哈希算法,这是一个加密。如果可以解密,则不是散列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 2016-04-02
  • 1970-01-01
  • 2012-04-10
  • 2019-03-28
相关资源
最近更新 更多