【发布时间】:2017-08-25 04:59:04
【问题描述】:
我正在使用以下代码为我的应用生成一个简单的 UID:
private function _createUid() {
$bytes = random_bytes(128);
$uid = bin2hex($bytes);
return $uid;
}
通过这样做,_createUid() 的结果将是一个 256 个字符的字符串。我的问题是,如果在同一台服务器上运行,这个字符串是否总是256 字符,我知道不同服务器上的一些差异。还有,一个字节等于两个字符吗?
任何帮助都会很棒,谢谢!
【问题讨论】:
-
为什么不使用 uniqid()?
-
@nogad 这不是加密随机的,可能会重复。
-
怎么可能不是 256 个字符?在十六进制中,一个字节始终表示为 2 个字符。
-
@zaph 好吧,所以当使用十六进制时,每个字节总是 2 个字符?
-
是的,一个字节是 2**8 == 16**2 是两个十六进制字符。
标签: php encryption cryptography byte