I'm sorry if this question has been asked before but I cannot find any solution that helps me.
Basically, I have a huge number n
where n
is a 4000 bit number. Obviously, it won't fit in the 64 bits allowed by the primitive type int
in Dart.
I need to find a random number g
such that 2 ≤ g ≤ (n - 1)
. Is there a way I can generate such a random number?
My current solution:
void _generatePrivateKey() { const numbers = '0123456789'; final halfOfNLength = N.toString().length ~/ 2; // Where `N` is `BigInt` final length = _rand.nextInt(halfOfNLength) + halfOfNLength; final buffer = StringBuffer(); for (var _ = 0; _ < length; _++) { buffer.write(numbers[_rand.nextInt(numbers.length)]); } _privateKey = BigInt.parse(buffer.toString()); }
I know it's not a good solution but that's all I have for now
https://stackoverflow.com/questions/66118748/how-do-i-get-a-random-bigint-in-a-specific-range-dart February 09, 2021 at 08:11PM
没有评论:
发表评论