我正在尝试用 python3 编写 RSA 代码。我需要将用户输入的字符串(包含任何字符,而不仅仅是数字)转换为整数,然后对其进行加密。在没有第 3 方模块的情况下,在 Python 3.6 中将字符串转换为整数的最佳方法是什么?
最佳答案
如何将字符串编码为整数远非唯一...有很多方法!这是其中之一:
strg = 'user input'
i = int.from_bytes(strg.encode('utf-8'), byteorder='big')
那么反方向的转换就是:
s = int.to_bytes(i, length=len(strg), byteorder='big').decode('utf-8')
是的,您需要在转换回之前知道结果字符串的长度。如果 length
太大,字符串将从左边用 chr(0)
填充(使用 byteorder='big'
);如果 length
太小,int.to_bytes
将引发一个 OverflowError: int too big to convert
。
https://stackoverflow.com/questions/44504397/