【问题标题】:python integer overflow solution [closed]python整数溢出解决方案
【发布时间】:2018-06-10 22:35:06
【问题描述】:

我对 Python 相当陌生,目前正在创建一个“RSA 加密”程序来向对等方发送秘密消息。我已经完成了程序,但遇到了计算问题。我不断收到溢出错误,因为我试图处理的数字对于本机 python 来说太大了。未分配的 256 位数字将是我的理想情况,但是我在寻找支持它们的库时遇到问题。我还读到您可以将数字压缩成更易于管理的格式,但是我没有方向或想法如何做到这一点。

如果您对我的问题有任何建议的解决方案,将不胜感激!谢谢你的时间!

【问题讨论】:

    标签: python python-3.x integer-overflow


    【解决方案1】:

    Python 原生支持任意精度整数:

    $ python3
    Python 3.6.5 (default, Mar 29 2018, 18:20:46) 
    [GCC 8.0.1 20180317 (Red Hat 8.0.1-0.19)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 2**256
    115792089237316195423570985008687907853269984665640564039457584007913129639936
    >>> 2**512
    13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
    

    但是当您使用一些数字处理框架时,例如 NumPy,然后是 it will use platform native integers,它们通常被限制为 64 位。

    【讨论】:

    • 感谢您的快速回答!我现在看到的数字接近 223^4493,我可能需要重新考虑这个加密系统是如何工作的,因为这个数字看起来大得离谱。当我用来生成密钥的素数只有两位数时,就是这种情况。如果我想要 4 位或 5 位的素数,这个数字会变大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    相关资源
    最近更新 更多