2016-09-09 13:48 GMT+02:00 Yasuo Ohgaki <yohg...@ohgaki.net>:

> Hi all,
>
> On Fri, Sep 9, 2016 at 8:18 PM, Arvids Godjuks <arvids.godj...@gmail.com>
> wrote:
> >
> > Hm, without "true" you get 13 chars, with "true" - 20+.
>
> Sorry. It's
>
> $ php -r 'var_dump(uniqid(), uniqid("", true));'
> string(13) "57d29c20c04c3"
> string(23) "57d29c20c04c50.55225401"
>
> I misread sprintf format.
>
> Anyway, we may use extra 10 chars to make it more random if it should
> keep compatibility.


That still breaks BC as the value is now longer than before.


> It seems uniqid() is popular for test scripts, so
> it would be preferred keeping it.


Nobody said it should be removed now. Maybe in the future. But you might as
well just use bin2hex(random_bytes(16)).


> It does not harm any with test
> script thanks to higher precision timers of current systems.
>

It's most often still abused for the wrong purpose.


> Some of us feel returning almost random value from uniqid() is
> overkill.


It breaks BC, overkill isn't the issue.


> This is reasonable. I'll prepare patch that uses 10 chars
> for 50 bits extra entropy from php_random_bytes() by default.


No please don't. Let's just deprecate it. Let's not break BC and make it
kinda safe but not really.


> It will
> be a little safer even when user misuses uniqid() while keeping
> most compatibility.
>
> Regards,
>
> --
> Yasuo Ohgaki
> yohg...@ohgaki.net
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to