如何解决如何在 Julia 中生成随机的十六进制字符串
我正在尝试为区块链钱包应用程序生成一个随机的十六进制字符串,但我不确定我将如何在 Julia 中做到这一点。在 Python 中,我会做类似的事情
import os
from ecdsa import SigningKey,VerifyingKey,SECP256k1
seed = os.urandom(SECP256k1.baselen)
解决方法
您可以使用 randstring
指定允许的字符:
julia> using Random
# default length is 8 characters
julia> randstring(['0':'9'; 'a':'f'])
"e7e15070"
# other custom lengths
julia> randstring(['0':'9'; 'a':'f'],4)
"9a6a"
julia> randstring(['0':'9'; 'a':'f'],12)
"df398edb1937"
julia> bytes2hex(rand(UInt8,4))
"9fae741a"
rand
和 randstring
默认使用 MersenneTwister
伪随机数生成器。如果您想使用不同的随机数流,您可以使用 RandomDevice
代替:
julia> randstring(RandomDevice(),['0':'9'; 'a':'f'])
"6f4499e3"
julia> bytes2hex(rand(RandomDevice(),UInt8,4))
"4d1c035c"
,
作为stated in the documentation of the standard library:
Julia 还提供了 RandomDevice
RNG 类型,它是操作系统提供的熵的包装器。
请注意,这里滥用了“熵”一词。操作系统很可能不会直接返回熵,它会从它自己的种子伪随机数生成器返回随机字节。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。