Ich verwende den RSA-Algorithmus für die Ver-/Entschlüsselung, und um die Dateien zu entschlüsseln, müssen Sie mit einigen ziemlich großen Werten umgehen. Genauer gesagt, mit Dingen wie
P = C^d % n
= 62^65 % 133
Nun, das ist wirklich die einzigen Berechnungen, die ill tun werden. Ich habe versucht, mit Matt McCutchen's BigInteger Library, aber ich bin immer eine Menge von Compiler-Fehler während der Verknüpfung, wie:
encryption.o(.text+0x187):encryption.cpp: undefined reference to `BigInteger::BigInteger(int)'
encryption.o(.text+0x302):encryption.cpp: undefined reference to `operator<<(std::ostream&, BigInteger const&)'
encryption.o(.text$_ZNK10BigIntegermlERKS_[BigInteger::operator*(BigInteger const&) const]+0x63):encryption.cpp: undefined reference to `BigInteger::multiply(BigInteger const&, BigInteger const&)'
Also fragte ich mich, was wäre der beste Weg, um über den Umgang mit den wirklich großen ganzen Zahlen, die aus dem RSA-Algorithmus kommen zu gehen.
Ich habe gehört, dass es eine Möglichkeit wäre, die Variablen als double long zu deklarieren, also...
long long decryptedCharacter;
aber ich bin mir nicht sicher, wie groß eine ganze Zahl sein kann, die gespeichert werden kann.
Ich versuche zum Beispiel, das folgende Programm mit dev C++ zu kompilieren und auszuführen:
#include iostream
#include "bigint\BigIntegerLibrary.hh"
using namespace std;
int main()
{
BigInteger a = 65536;
cout << (a * a * a * a * a * a * a * a);
return 0;
}
dann erhalte ich diese Fehler.
Derek, ich dachte, dass durch die Einbeziehung der BigIntegerLibrary.hh
Datei, die der Compiler durchgehen und alle notwendigen Dateien kompilieren würde, die er verwenden wird.
Wie sollte ich versuchen, das obige Programm zu kompilieren, um die Verknüpfungsfehler zu beheben?