diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-12-12 17:14:56 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-12-12 17:14:56 +0000 |
commit | db2b52425dced7665cc33cc9fb6ade688fcbce4a (patch) | |
tree | 7908c90b12aeaf408181298fdda430d858ac9506 /loginutils | |
parent | 900406c359c319100c892a38be2bb5d76a8f85b9 (diff) |
passwd: added comment
Diffstat (limited to 'loginutils')
-rw-r--r-- | loginutils/passwd.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/loginutils/passwd.c b/loginutils/passwd.c index a062596b4..c28e9b80e 100644 --- a/loginutils/passwd.c +++ b/loginutils/passwd.c @@ -34,10 +34,15 @@ static void crypt_make_salt(char *p, int cnt) x += getpid() + time(NULL) + clock(); do { - /* x = (x*1664525 + 1013904223) mod 2^32 generator is lame + /* x = (x*1664525 + 1013904223) % 2^32 generator is lame * (low-order bit is not "random", etc...), * but for our purposes it is good enough */ x = x*1664525 + 1013904223; + /* BTW, Park and Miller's "minimal standard generator" is + * x = x*16807 % ((2^31)-1) + * It has no problem with visibly alternating lowest bit + * but is also weak in cryptographic sense + needs div, + * which needs more code (and slower) on many CPUs */ *p++ = i64c(x >> 16); *p++ = i64c(x >> 22); } while (--cnt); |