Mercurial > prosody-hg
comparison util/random.lua @ 6420:0c070e30a7db
util.random: Switch to SHA512
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Thu, 18 Sep 2014 10:16:59 +0200 |
| parents | bd812a7713ad |
| children | c3011ab945b8 |
comparison
equal
deleted
inserted
replaced
| 6417:060b63a27e9b | 6420:0c070e30a7db |
|---|---|
| 8 | 8 |
| 9 local tostring = tostring; | 9 local tostring = tostring; |
| 10 local os_time = os.time; | 10 local os_time = os.time; |
| 11 local os_clock = os.clock; | 11 local os_clock = os.clock; |
| 12 local ceil = math.ceil; | 12 local ceil = math.ceil; |
| 13 local sha1 = require "util.hashes".sha1; | 13 local H = require "util.hashes".sha512; |
| 14 | 14 |
| 15 local last_uniq_time = 0; | 15 local last_uniq_time = 0; |
| 16 local function uniq_time() | 16 local function uniq_time() |
| 17 local new_uniq_time = os_time(); | 17 local new_uniq_time = os_time(); |
| 18 if last_uniq_time >= new_uniq_time then new_uniq_time = last_uniq_time + 1; end | 18 if last_uniq_time >= new_uniq_time then new_uniq_time = last_uniq_time + 1; end |
| 19 last_uniq_time = new_uniq_time; | 19 last_uniq_time = new_uniq_time; |
| 20 return new_uniq_time; | 20 return new_uniq_time; |
| 21 end | 21 end |
| 22 | 22 |
| 23 local function new_random(x) | 23 local function new_random(x) |
| 24 return sha1(x..os_clock()..tostring({})); | 24 return H(x..os_clock()..tostring({})); |
| 25 end | 25 end |
| 26 | 26 |
| 27 local buffer = new_random(uniq_time()); | 27 local buffer = new_random(uniq_time()); |
| 28 | 28 |
| 29 local function seed(x) | 29 local function seed(x) |
