我正在尝试生成大的随机素数(1024 bit-ish),所以我需要一种方法来生成大的正随机数。
我从System.Random
开始,但想从Crypto.Random
包中转移到crypto-api
。
Crypto.Random
只生成字节串,所以我需要一种转换为Integer
类型的方法。这样做的最佳方式是什么?
答案 0 :(得分:5)
如果不在GHC.Integer
的内部进行调整,您可以将字节字符串一次折叠成 if length in [3, 4, 5]:
print('number_same =', length)
print('element =', value)
print('positions =', 'still working on this')
==== OUTPUT ====
number_same = 3
element = 0
positions = still working on this
个字节。
Integer
如果您想要阅读import qualified Data.ByteString as BS
import Data.Bits
fromBytes :: ByteString -> Integer
fromBytes = BS.foldl' f 0
where
f a b = a `shiftL` 8 .|. fromIntegral b
个数字而不是Natural
个,则可以为此提供更一般的类型签名。
Integer