将MD5哈希映射到一组整数

时间:2012-03-05 22:36:38

标签: jquery image random md5

我想在我的系统上为每个用户显示一个随机图像。但是,特定用户每次都必须始终接收相同的随机图像,因此如果需要,我必须能够生成图像ID。

我正在考虑使用用户名的MD5来生成一个数字。我的系统正在使用JavaScript,而我正在使用jQuery库。

例如,如果随机图像有4种变体,我想将名称传递给它并接收整数。

$image_id = getImage(name);

注意:概率不需要准确。即如果其中一张图片比其他图片更受欢迎,那与我无关。

2 个答案:

答案 0 :(得分:1)

您需要的是一个JavaScript随机函数,它也接受种子。然后,您可以创建用户名的数字版本(或使用他们的ID#),并将其作为种子传递给您的新函数。

有一种方法可以在此处发布:Seedable JavaScript random number generator

完成后,您将获得每次生成的相同随机数。从那里,您可以选择该随机数从图像数组中选择一个索引。

答案 1 :(得分:0)

将字符串简单映射到整数函数

好的,我写了自己的小功能。希望它对某人有用。

该函数对字符串中每个字符的字符代码求和,然后使用模数将数字减少到指定的最大值。似乎非常有效。

N.b。它在数学上并不是随机的,但从字符串中选择可重复的随机选项非常有用。

function getMappedCode(string, max_number_desired)
{
  var char_code_total = 0;  
  for(var i = 0; i < string.length; i++) {
    char_code_total += string.charCodeAt(i);  
  }  
  return char_code_total % max_number_desired;
}

var mapped_code = getMappedCode("tom finney", 10);

alert(mapped_code);