擅长:python、mysql、java
<p>为此,我使用了一个重复的MD5散列,因为散列函数的目的是一个跨平台的一对一转换,所以在不同的平台上总是相同的。</p>
<pre><code>import md5
def repeatable_random(seed):
hash = seed
while True:
hash = md5.md5(hash).digest()
for c in hash:
yield ord(c)
def test():
for i, v in zip(range(100), repeatable_random("SEED_GOES_HERE")):
print v
</code></pre>
<p>输出:</p>
<pre><code>184 207 76 134 103 171 90 41 12 142 167 107 84 89 149 131 142 43 241 211 224 157 47 59 34 233 41 219 73 37 251 194 15 253 75 145 96 80 39 179 249 202 159 83 209 225 250 7 69 218 6 118 30 4 223 205 91 10 122 203 150 202 99 38 192 105 76 100 117 19 25 131 17 60 251 77 246 242 80 163 13 138 36 213 200 135 216 173 92 32 9 122 53 250 80 128 6 139 49 94
</code></pre>
<p>本质上,代码将获取种子(任何有效字符串)并重复散列它,从而生成0到255之间的整数。</p>