Python 下面这行代码的作用是什么?
我正在阅读python中的一段代码,这时我看到了上面的代码行。Python 下面这行代码的作用是什么?,python,python-2.7,Python,Python 2.7,我正在阅读python中的一段代码,这时我看到了上面的代码行。 有人能解释一下上面的代码行是做什么的吗?这行代码创建了一个随机的16个字符的十六进制字符串 生成范围为[0.0,1.0]的随机浮点值 生成该随机值的字符串版本 >>> import random >>> random.random() 0.845295579640289 创建用字符串值初始化的哈希对象 >>> str(0.845295579640289) '0.84529
有人能解释一下上面的代码行是做什么的吗?这行代码创建了一个随机的16个字符的十六进制字符串
- 生成范围为[0.0,1.0]的随机浮点值
- 生成该随机值的字符串版本
>>> import random >>> random.random() 0.845295579640289
- 创建用字符串值初始化的哈希对象
>>> str(0.845295579640289) '0.84529557964'
片段将挑选出前16个字符。此步骤将摘要减半为32个字符中的前16个字符:[:16]
>>> hashlib.md5('0.84529557964').hexdigest() '5180b52225eac65bee1d6419e28ef397'
os.uradom()
来代替十六进制编码:
>>> '5180b52225eac65bee1d6419e28ef397'[:16]
'5180b52225eac65b'
这会产生一个随机的8字节字符串值,当用十六进制表示时,也会产生16个十六进制字符,完全是随机的
我的加密fu不是很好,但我觉得后一种形式在加密方面比将浮点伪随机值字符串的MD5哈希值减半强。
MD5
是一种加密-解密技术,它生成128位校验和,并以32位十六进制数的文本格式表示。
>>> import random
>>> random.random()
0.845295579640289
因此,hashlib.md5(str(random.random()).hexdigest()将以字符串形式给出这个数字,然后
[:16]
将提取该散列的前16位数字并存储在var
有关更多详细信息,请阅读这些参考资料
@martijin pieters,什么是md5?@shubham你的谷歌按钮坏了吗?md5是哈希算法@shubham@shubham:我所做的只是在这里向您展示了文档。下次,请先自己查找文档。也许您可以尝试执行该代码来查看?不知道Python,但我来了:获取一个随机字符串,然后用md5对其进行哈希获取一个16长度的十六进制字符串\
>>> '5180b52225eac65bee1d6419e28ef397'[:16]
'5180b52225eac65b'
>>> import os
>>> os.urandom(8).encode('hex')
'a8cb7b56d476b556'