20

使ってみました

long long int

しかし、3141592653589793238462643383279502884197169399375 のような数値では機能しません。最大 10 ^ 80 が必要です。お知らせ下さい。どうもありがとう。

4

1 に答える 1

31

これには組み込みの整数型は使用できません。「多倍精度整数」別名「bignum」ライブラリが必要です。C++ の場合、Boost.Multiprecisionを最初に試しますが、特に使用しているモジュールに共有ライブラリ (別名 DLL) コンポーネントがある場合は、Boost は価値があるよりもかなり問題になる可能性があることに注意してください。もう 1 つの明白な選択肢はGNU MPです。C インターフェースしかありませんが、よく整備され、信頼性が高く、高速で、非常に人気があります (実際、Boost.MP は「単なる」C++ ラッパーのようです!)

警告: RSAのような巨大な数を使用する暗号プリミティブの 1 つを実装しようとしているため、bignum ライブラリが必要になる場合があります。 これをしないでください。一般的な bignum ライブラリは、暗号化の使用には安全ではありません。たとえそうであったとしても、セキュリティを損なう可能性のある微妙な間違いが数十あります。代わりに、十分にテストされた暗号化ライブラリを使用してください。C++ の場合、 Botan をお勧めします

于 2013-03-14T02:26:32.900 に答える