【问题标题】:WAMP hash not generatingWAMP 哈希未生成
【发布时间】:2012-04-23 16:58:46
【问题描述】:

以下代码不会在 Windows 上的 WAMP 中生成输出。

在 MAMP 上运行良好。

猜测是缺少模块之类的。

$reportHash = str_replace(
        array('+','/','='),
        array('-','_',''),
        base64_encode(file_get_contents('/dev/urandom', null, null, -1, 16)));

【问题讨论】:

    标签: php


    【解决方案1】:

    Windows 上没有/dev/urandom

    uniqid() 用于便携式随机字符串生成器,或将mt_rand() 用于便携式随机数生成器。

    【讨论】:

    • 打败我!这是一个与 mt_rand() 相关的 SO 问题:stackoverflow.com/questions/9446892/php-using-mcrypt-create-iv
    • @David,WAMP 是一个软件集合,可以在 Windows 上轻松运行 PHP、Apache 和 MySQL。它们将在 Windows 上运行,而不是在 UNIX 上。 /dev/urandom 是一个存在于 UNIX 文件系统上的文件(file_get_contents() 实际上打开文件并从中读取),但 Windows 上不存在这样的文件,因此读取会失败。使用该文件会限制您的代码在 UNIX 系统(例如 Linux 和 Mac OS X)上的可移植性。
    • 知道我在 Windows 上的 UNIX 上所做的任何好的替代方法。
    • @David,当然,使用 mt_rand() 生成足够的 0 到 255 之间的数字,然后使用 chr() 获取由您获得的随机数标识的字符,以填充您的字符串。
    猜你喜欢
    • 2015-10-16
    • 2015-06-28
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多