Python 中的随机字节字符串
我有 buf="\x00\xFF\xFF\xFF\xFF\x00"
如何使 "\xFF\xFF\xFF\xFF"
随机化?
I have buf="\x00\xFF\xFF\xFF\xFF\x00"
How can I make the "\xFF\xFF\xFF\xFF"
randomized?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
获取安全随机字节序列的另一种方法是使用标准库
secrets
模块,该模块自 Python 3.6 起可用。示例,基于给定的问题:
更多信息可以在以下位置找到:
https://docs.python.org/3/library/secrets.html
An alternative way to obtaining a secure random sequence of bytes could be to use the standard library
secrets
module, available since Python 3.6.Example, based on the given question:
More information can be found at:
https://docs.python.org/3/library/secrets.html
比其他解决方案更快,但不加密安全。
Faster than other solutions but not cryptographically secure.
Python 3.9 添加了新的
random.randbytes
方法。此方法生成随机字节:
输出:
不过要小心。仅当您不处理密码学时才应使用它。正如文档中所述:
Python 3.9 adds a new
random.randbytes
method. This method generates random bytes:Output:
Be careful though. It should be used only when you are not dealing with cryptography. As stated in the docs:
在 POSIX 平台上:
使用
/dev/random
获得更好的随机化效果。On POSIX platforms:
Use
/dev/random
for better randomization.您想要将中间 4 个字节设置为随机值吗?
Do you want the middle 4 bytes to be set to a random value?
这可以用来生成随机字节字符串(将
n
替换为所需的数量):具体问题的答案将是:
正如其他人指出的那样,这不应该用于加密,但对于其他一切来说,它应该完全没问题。
This can be used to generate a string of random bytes (replace
n
with the desired amount):The answer to the specific question would then be:
As others pointed out, this should not be used for cryptography, but for everything else it should be perfectly fine.
我喜欢使用 numpy 库来实现这一点。
I like using numpy library for that.
简单的:
Simple: