| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Numerics;
- using System.Text;
- using System.Threading.Tasks;
- namespace Helper
- {
- public static class BigIntegerHelper
- {
- public static BigInteger RandBigInteger(int byteNum)
- {
- var bigIntegerBytes = new byte[byteNum];
- var random = new Random();
- random.NextBytes(bigIntegerBytes);
- var bigInteger = new BigInteger(bigIntegerBytes);
- return bigInteger;
- }
- public static BigInteger RandUnsignedBigInteger(int byteNum)
- {
- var bigIntegerBytes = new byte[byteNum];
- var random = new Random();
- random.NextBytes(bigIntegerBytes);
- var newBigIntegerBytes = new byte[byteNum + 1];
- // 给最高位加个0,防止变成负数
- Array.Copy(bigIntegerBytes, newBigIntegerBytes, bigIntegerBytes.Length);
- newBigIntegerBytes[newBigIntegerBytes.Length - 1] = 0;
- var bigInteger = new BigInteger(newBigIntegerBytes);
- return bigInteger;
- }
- public static byte[] ToTrimByteArray(this BigInteger bigInteger)
- {
- var bytes = bigInteger.ToByteArray();
- if (bytes[bytes.Length - 1] == 0)
- {
- return bytes.Take(bytes.Length - 1).ToArray();
- }
- return bytes;
- }
- }
- }
|