2012-05-16 10 views
8

Trabajo para implementar un algoritmo de clave RSA. Pero no pude usar un valor de 2048 bits. ¿Cómo puedo usarlo?¿Cómo puedo usar bigint con C#?

Quiero usar un número entero grande.

+1

Normalmente los algoritmos de clave RSA funcionan en 8 bits a la vez. Su clave se colocará en una matriz de bytes con 8 índices. – Trisped

+1

no duplicado. No quiero usar long o int64. no me bastan –

Respuesta

22

Puede usar System.Numerics.BigInteger (agregue una referencia al ensamblaje System.Numerics). Como se mencionó en los comentarios, este podría no ser el enfoque correcto.

+0

De hecho, BigInteger es el camino a seguir. Nota secundaria: solo está disponible en .NET 4.0 y versiones posteriores. –

8

La compatibilidad nativa para enteros grandes se ha introducido en .NET 4.0. Simplemente agregue una referencia de ensamblaje al System.Numerics, agregue una declaración using System.Numerics; en la parte superior de su archivo de código, y listo. El tipo que buscas es BigInteger.

1

Mejor uso System.Numerics.BigInteger.

6

Aquí está usando BigInteger. Este método imprime números en la secuencia de Fibonacci hasta 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); } 
} 
Cuestiones relacionadas