我需要快速的方法在 PHP中生成随机字符串a-Z0-9.我一直在做一些思考和测试,这是我到目前为止所做的:
function randStr($length) {
    $result = null;
    $replace = array('/','+','=');
        while(!isset($result[$length-1])) {
        $result.= str_replace($replace,NULL,base64_encode(mcrypt_create_iv($length,MCRYPT_RAND)));
        }
    return substr($result,$length);
}

与为每个char迭代并选择随机ASCII值的函数相比,函数似乎工作得很快,但我关注的是我的实现的“质量”.我对密码学知之甚少,所以我想问一下这种函数是否会产生“好的”随机值.

> mcrypt_create_iv似乎返回某种随机二进制值,实际上用于使用mcrypt库加密/解密数据.什么是base64_encode对这种二进制数据的影响,当我base64_encode时,我实际上是否减少了熵?
> mcrypt_create_iv的第二个参数如何影响我的结果? PHP.net手册指出MCRYPT_RAND是’系统随机数生成器’.它是特定于操作系统的,如果是,那么创建了多少好的值?

> base64_encoding不会降低熵,它只是相同数据的不同表示. >它是特定于操作系统的,但我认为使用此功能创建的随机值足够好.在PHP 5.3下,您必须事先为生成器播种,如果您在不同的服务器上使用此代码,则可能会出现问题.

PHP快速随机字符串功能的更多相关文章

  1. Swift(iOS)和PHP中AES256加密的结果不同

    我在AES256工作,能够使用不安全的渠道在iOS和PHP之间加密/解密.我已经看到很多类似的问题围绕密钥大小,模式(CBC或ECB),随机iv的使用等等.但在这种情况下,我发现了一个奇怪的行为,如下所示.两种环境中的配置:–密钥:32字节(256位)–块大小:128位(标准)–iv:16字节(静态用于测试目的)–模式:CBC如果我加密16或32字节的文本(以匹配AES块大小),Swift和PHP

  2. PHP 加密 Password Hashing API基础知识点

    在本篇文章里小编给大家分享的是一篇关于PHP 加密 Password Hashing API基础知识点,有兴趣的朋友们可以学习下。

  3. 在PHP文件中存储加密密钥的安全性

    所以我使用mcrypt加密数据,将其存储在数据库中并对其进行解密.我想知道在public_html目录之外的PHP文件中存储加密密钥是否安全?将其存储在文件中的原因是它需要用于多个加密,以便多个用户可以解密某些数据,并且我认为将其存储在文件中比在数据库表中更安全,就在加密旁边数据.什么是潜在的安全风险?是否有可能让黑客获得对此文件的访问权限,从而获得密钥?

  4. php – Codeigniter:如何在将表单提交给控制器之前加密密码?

    我有一个简单的html登录表单当我提交表格并在控制器中这里的问题,它显示了普通密码,如果我在控制器中键入123456,我得到123456.>这是安全问题吗?>任何人都可以通过wireshark等网络监控工具获取密码吗?在发送到控制器之前,我可以在视图中加密密码吗?

  5. php – 加密/解密与MySQL数据库之间的密码

    我开始为我的网站创建一个用户系统,我想要做的是加密密码,而不是明文.我正在使用PHP/MysqL,所以我认为crypt()是一个很好的起点.但是,我对这样的密码学并不陌生,而且我很难理解它是如何工作的.有人知道如何在最简单的层面上实现密码存储为加密字符串的方式,但总是能够解密,没有安全问题?

  6. php – Zend Mail Gmail SMTP

    嗨,我正在尝试从Zend_Mail模块通过gmail发送一些电子邮件.这是我的代码:错误:警告:stream_socket_enable_crypto()[streams.crypto]:此流不支持206行/library/Zend/Mail/Protocol/Smtp.PHP中的SSL/加密无法通过TLS连接我试着告诉我的托管服务提供商在phi.ini中启用openssl.dll但他们说这不是必

  7. 你能将php crypt()的输出转换为有效的MD5吗?

    我有一些使用PHPfunctioncrypt()加密的字符串.输出看起来像这样:虽然我相信crypt()正在使用MD5算法,但输出不是有效的MD5哈希值.有没有办法将生成的哈希值转换为有效的MD5哈希值?更新:感谢回复到目前为止的答案.我很确定使用的crypt函数是使用某种MD5算法.我要做的是将我拥有的输出转换为MD5哈希,如下所示:有没有办法从我有的哈希转换成上面的哈希?

  8. php – 最好的方法来保护数据库连接字符串?

    我正在PHP中编写一组数据库驱动的应用程序.这些应用程序将作为自己的用户在Linux服务器上运行.其他用户有时可能会在系统上,但访问权限非常受控.其他服务器,他们根本无法访问.我还将向需要编写使用DBI和我写的一组函数访问数据库的Perl脚本的开发人员公开一个限制存储过程API.我的问题是什么最好的方式来保护配置文件中有连接字符串?

  9. php – 在nodejs中加密

    更新:varcode=Crypto.createHmac.update.digest;你想要使用createHmac函数.

  10. 用PHP和MySQL解析我的哈希

    )以及PHP手册中的其他内容,但不知道如何存储和检索密码.所以,这是我所了解的全部:之后,我失去了盐.检索密码没有盐很容易,但盐混淆了我.我从哪里获得$salt的价值,特别是如果它是独一无二的和安全的?

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部