Я хотел бы взять хеш md5 некоторого содержимого, а затем сгенерировать, так сказать, «кривую» или «спектр» из n точек. То есть для построения, скажем, 5, 10 или 20 точек на линии от 0 до 1, распределенных таким образом, чтобы он был уникальным для хеша md5 (коллизии не имеют большого значения). В основном это будет выглядеть как спектр излучения атомного света.
Эти точки (или линии в спектрах) каким-то образом генерируются на основе предоставленного хеша md5 и предоставленного n
, указывающего, сколько строк вы хотите.
Так было бы как:
function generateSpecrum(md5, n) { return [ ... ] }
По умолчанию он может просто возвращать значения в диапазоне от 0 до 1, но, возможно, вы даете ему начальное и конечное значение, из которого можно сгенерировать диапазон.
Хотите знать, как это можно сделать, в псевдокоде или в JS.
Однако будет много возможностей стандартного хеша md5. Я бы просто сделал это:
var crypto = require('crypto')
var data = 'foo'
crypto.createHash('md5').update(data).digest('hex')
// acbd18db4cc2f85cedef654fccc4a4d8
Итак, 32-байтовая строка. В моем случае ему не нужно создавать глобально уникальные значения, могут быть некоторые коллизии, но если бы у него был способ генерировать разнообразные спектры из разных входов md5, это было бы здорово.