具有 2048 位的 C# BigInteger
C# BigInteger with 2048bits
我正在创建一个 C# 控制台应用程序以查找质数并将它们用于 RSA 编码。不幸的是,最新标准(关于编码密钥)约为 2048 位。我尝试使用 biginteger,但我可以计算出的最大值是 2^1023。可以使用更大的数字吗?
BigInteger 没有上限(仅受可用内存或其底层字节数组的最大分配大小限制)。
您的程序抛出异常,因为方法 Math.Pow(x,y) returns double 和 double 不能表达 2^1024 或更大的数字。
要创建更大的数字,请改用此方法
var big = BigInteger.Pow(2, 2048);
或者使用 BigInteger 构造函数,它采用字节数组或 BigInteger.Parse() 方法。
我正在创建一个 C# 控制台应用程序以查找质数并将它们用于 RSA 编码。不幸的是,最新标准(关于编码密钥)约为 2048 位。我尝试使用 biginteger,但我可以计算出的最大值是 2^1023。可以使用更大的数字吗?
BigInteger 没有上限(仅受可用内存或其底层字节数组的最大分配大小限制)。
您的程序抛出异常,因为方法 Math.Pow(x,y) returns double 和 double 不能表达 2^1024 或更大的数字。
要创建更大的数字,请改用此方法
var big = BigInteger.Pow(2, 2048);
或者使用 BigInteger 构造函数,它采用字节数组或 BigInteger.Parse() 方法。