我希望能够将任何字符串表示为唯一整数(意味着世界中的每个整数都只能表示一个字符串,并且某个字符串将始终存在于同一个整数中)。
显而易见的一点是,这就是计算机的工作方式,将字符串'Hello'
(例如)表示为每个字符的数字,特别是一个字节(假设为ASCII
编码)。
但是......我想对该数字进行算术计算(使用RSA
将其编码为数字)。
这个变得混乱的原因是因为假设我有一个更大的字符串'I am an average length string'
我有更多的字符(在这种情况下是29),一个29字节的整数可能会出现巨大的,可能太多了计算机处理(当提出更大的字符串......?)。
基本上,我的问题是,我该怎么办?我不想为RSA
使用任何模块,这是我想要自己实现的任务。
答案 0 :(得分:1)
以下是如何将字符串转换为单个数字。如您所料,数字会变得非常大,但Python可以处理任意大小的整数。使用加密的常用方法是一次完成单个字节,但我假设这仅用于学习体验。这假设是一个字节字符串,如果你有一个Unicode字符串,你可以先编码为UTF-8。
num = 0
for ch in my_string:
num = num << 8 + ord(ch)