2012-05-16 6 views
8

Ich arbeite, um einen RSA Schlüsselalgorithmus zu implementieren. Aber ich konnte keinen 2048-Bit-Wert verwenden. Wie kann ich es benutzen?Wie kann ich Bigint mit C# verwenden?

Ich möchte große Ganzzahl verwenden.

+1

In der Regel arbeiten RSA-Schlüsselalgorithmen mit 8 Bits gleichzeitig. Ihr Schlüssel würde in einem Bytearray mit 8 Indizes platziert. – Trisped

+1

nicht duplizieren. Ich möchte nicht long oder int64 verwenden. Sie tun nicht genug für mich –

Antwort

22

Sie können System.Numerics.BigInteger verwenden (einen Verweis auf System.Numerics assembly). Wie in den Kommentaren erwähnt, ist dies jedoch möglicherweise nicht der richtige Ansatz.

+0

In der Tat, BigInteger ist der Weg zu gehen. Kleiner Hinweis: Es ist nur in .NET 4.0 und höher verfügbar. –

8

Native Unterstützung für große Ganzzahlen wurde in .NET 4.0 eingeführt. Fügen Sie einfach eine Assembly-Referenz zu System.Numerics hinzu, fügen Sie oben in Ihrer Codedatei eine using System.Numerics; Deklaration hinzu, und Sie können loslegen. Der gewünschte Typ ist BigInteger.

1

Bessere Verwendung System.Numerics.BigInteger.

6

Hier wird BigInteger verwendet. Diese Methode druckt Zahlen in der Fibonacci-Folge bis zu 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); } 
}