随机字节创建未定义的字符

时间:2018-05-28 14:26:37

标签: php hash salt

我正在使用 Random Bytes 在PHP中创建一个哈希:

<?php 
class Hash
{
    public static function make($string, $salt = '')
    {
        return hash('sha256', $string . $salt);
    }
    public static function salt($length)
    {
        return random_bytes($length);
    }
    public static function unique()
    {
        return self::make(uniqid());
    }
}
?>

但是我得到了这个结果:

  

|i S 7΋ j )8ce |i S 7΋ j )8ce

那么这是怎么回事?如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

打印字节很难做到。

正如teresko建议的那样,将其包裹在base64_encode()中,或使用bin2hex()。后者打印十六进制,所以只使用16个字符,但这就足够了。

See here for both in action.