加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 从/ dev / urandom转换随机值

发布时间:2020-12-13 17:40:01 所属栏目:PHP教程 来源:网络整理
导读:正如 comments of mt_rand() 中提到的那样,安全性很弱,我们应该使用/ dev / urandom.我的问题是,从urandom我得到一个二进制字符串. 如何将此二进制字符串转换为0-9a-zA-Z? 看起来像base_convert()在这里不起作用. 解决方法 仅供记录全功能: function rando
正如 comments of mt_rand()中提到的那样,安全性很弱,我们应该使用/ dev / urandom.我的问题是,从urandom我得到一个二进制字符串.

如何将此二进制字符串转换为0-9a-zA-Z?

看起来像base_convert()在这里不起作用.

解决方法

仅供记录全功能:

function randomFromDev($len)
{
    $fp = @fopen('/dev/urandom','rb');
    $result = '';
    if ($fp !== FALSE) {
        $result .= @fread($fp,$len);
        @fclose($fp);
    }
    else
    {
        trigger_error('Can not open /dev/urandom.');
    }
    // convert from binary to string
    $result = base64_encode($result);
    // remove none url chars
    $result = strtr($result,'+/','-_');
    // Remove = from the end
    $result = str_replace('=',' ',$result);
    return $result;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读