[英]In C#, how do I store large prime number?
今天是個好日子,
我正在嘗試在 C# 中實現 Diffie-Hellman 密鑰交換協議。 首先,這是一個測試項目。 我知道我不應該將其用於任何實際應用。 我這樣做只是為了多了解一點。
現在,根據這個 RFC (3526),我需要使用質數 P= 2^6144 - 2^6080 - 1 + 2^64 * { [2^6014 pi] + 929484 }
和生成器 G= 2
。
https://datatracker.ietf.org/doc/html/rfc3526#page-6
但是質數太大了! 即使對於 BigInteger !
我現在如何進行?
編輯:
我認為它太大了,因為這段代碼返回一個負值:
string hexString = "...";
BigInteger number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier);
Console.WriteLine("Converted 0x{0}\nto\n{1}.", hexString, number);
BigInteger.Parse
將十六進制字符串轉換為二進制。 如果二進制數以1
開頭,則表示該數字是有符號的。 這就是為什么它給你一個負數。 正如@canton7 所說,只需在前面加上0
就可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.