gpt4 book ai didi

JavaScript 中的 PHP 函数 crypt()

转载 作者:行者123 更新时间:2023-11-29 19:53:16 33 4
gpt4 key购买 nike

在服务器端我创建了一个密码散列:

public static function salt()
{
return '$1$' . StringUtil::random(6, array('encode' => StringUtil::ENCODE_BASE_64));
}

public static function hash($password, $salt = null)
{
return crypt($password, $salt ?: static::salt());
}

在客户端,我想使用 CryptoJS 做同样的事情。PHP crypt() 的 javascript 中是否有任何类似物,而 CryptoJS 则不需要?

更新:我想在客户端执行此操作,因为我不想将密码发送到服务器,而是像用哈希加密的 clientId 之类的东西,在服务器上对其进行解密并获取哈希以进行下一次操作。

最佳答案

嗯,这里是:a CryptoJS implementation of PHP's crypt for MD5-hashes(我想它太大了,无法粘贴)。所以它不是一个完整的类似 crypt 的东西,但在你的代码示例中,你正在设置一个基于 MD5 的散列(使用 $1$ salt 前缀)。

使用方法:

  1. 存储在名为 php-crypt-md5.js 的文件中
  2. 像这样使用它(“rollups”在您的 CryptoJS 目录中,只需使用正确的路径):

    <script src="rollups/md5.js"></script>
    <script src="php-crypt-md5.js"></script>

    <script>
    function createSalt(len) {
    var saltAlpha = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
    "abcdefghijklmnopqrstuvwxyz./-+_"

    var salt = '$1$';
    for(var i = 0; i < len; ++i) {
    salt += saltAlpha.charAt(
    Math.floor(Math.random() * saltAlpha.length));
    }

    return salt;
    }

    // in your JavaScript code:

    var salt = createSalt(8);
    var pw = "your password";

    var hash = CryptoJS.PHP_CRYPT_MD5(pw, salt);

关于JavaScript 中的 PHP 函数 crypt(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16996030/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com