2012-05-16 13 views
8

Tôi làm việc để triển khai thuật toán khóa RSA. Nhưng tôi không thể sử dụng giá trị 2048 bit. Làm thế nào tôi có thể sử dụng nó?Làm thế nào tôi có thể sử dụng bigint với C#?

Tôi muốn sử dụng số nguyên lớn.

+1

Thông thường thuật toán khóa RSA hoạt động trên 8 bit tại một thời điểm. Khóa của bạn sẽ được đặt trong một mảng byte với 8 chỉ mục. – Trisped

+1

không trùng lặp. tôi không muốn sử dụng dài hoặc int64. họ không đủ cho tôi –

Trả lời

22

Bạn có thể sử dụng System.Numerics.BigInteger (thêm tham chiếu đến System.Numerics assembly). Như đã đề cập trong các ý kiến ​​này có thể không phải là cách tiếp cận đúng mặc dù.

+0

Thật vậy, BigInteger là con đường để đi. Ghi chú nhỏ: chỉ có sẵn trong .NET 4.0 trở lên. –

8

Hỗ trợ gốc cho số nguyên lớn đã được giới thiệu trong .NET 4.0. Chỉ cần thêm tham chiếu lắp ráp vào System.Numerics, thêm tuyên bố using System.Numerics; ở đầu tệp mã của bạn và bạn đã sẵn sàng sử dụng. Loại bạn đang theo dõi là BigInteger.

1

Sử dụng tốt hơn System.Numerics.BigInteger.

6

Đây là sử dụng BigInteger. Phương thức này In các số trong dãy Fibonacci lên đến n.

public static void FibonacciSequence(int n) 
{ 
    /** BigInteger easily holds the first 1000 numbers in the Fibonacci Sequence. **/ 
    List<BigInteger> fibonacci = new List<BigInteger>(); 
    fibonacci.Add(0); 
    fibonacci.Add(1); 
    BigInteger i = 2; 
    while(i < n) 
    {     
     int first = (int)i - 2; 
     int second = (int) i - 1; 

     BigInteger firstNumber = fibonacci[first]; 
     BigInteger secondNumber = fibonacci[second]; 
     BigInteger sum = firstNumber + secondNumber; 
     fibonacci.Add(sum); 
     i++; 
    }   

    foreach (BigInteger f in fibonacci) { Console.WriteLine(f); } 
}