在python

时间:2015-06-09 15:16:26

标签: python string encoding

我希望能够将任何字符串表示为唯一整数(意味着世界中的每个整数都只能表示一个字符串,并且某个字符串将始终存在于同一个整数中)。

显而易见的一点是,这就是计算机的工作方式,将字符串'Hello'(例如)表示为每个字符的数字,特别是一个字节(假设为ASCII编码)。

但是......我想对该数字进行算术计算(使用RSA将其编码为数字)。

这个变得混乱的原因是因为假设我有一个更大的字符串'I am an average length string'我有更多的字符(在这种情况下是29),一个29字节的整数可能会出现巨大的,可能太多了计算机处理(当提出更大的字符串......?)。

基本上,我的问题是,我该怎么办?我不想为RSA使用任何模块,这是我想要自己实现的任务。

1 个答案:

答案 0 :(得分:1)

以下是如何将字符串转换为单个数字。如您所料,数字会变得非常大,但Python可以处理任意大小的整数。使用加密的常用方法是一次完成单个字节,但我假设这仅用于学习体验。这假设是一个字节字符串,如果你有一个Unicode字符串,你可以先编码为UTF-8。

num = 0
for ch in my_string:
    num = num << 8 + ord(ch)