2014-09-25 296 views
-3

作为密码学课程的一部分,我遇到了很多大数目(128位或更多)。虽然我的课程在很大程度上是数学领域,但并没有深入研究这个领域的实现方面,我试图在空闲时间实现一些简单的算法。显然,第一个绊脚石一直在想出不同的方式来表示大数字(128位或模式)。到目前为止,我已经使用Python的ctype,它给了我无符号整数高达64位。Python中的无符号数字

例如:如何处理大于64位的密钥/数据块?例如,类似的东西:

A56BABCD00000000FFFFFFFFABCDEF01 

任何输入将不胜感激。

+4

你读过关于Python的任何**吗?它已经支持长算术。 – m0nhawk 2014-09-25 14:53:48

+0

python表示你的号码以十进制表示法写成'219881679602189885463659373782260117249L'。 – tgmath 2014-09-25 14:55:46

+0

@ m0nhawk我在查看Pythons对无符号数的支持,我不认为长算术支持这一点。因此我使用了ctypes模块。 – feverDream 2014-09-25 15:22:13

回答

2

Python已经支持任意长整数(implementation)。尝试在命令行上:

>>> 0xA56BABCD00000000FFFFFFFFABCDEF01 
219881679602189885463659373782260117249L