簡體   English   中英

在python中將字符串表示為整數

[英]Represent string as an integer in python

我希望能夠將任何字符串表示為一個唯一的整數(意味着世界上的每個整數只能表示一個字符串,而某個字符串會不斷產生相同的整數)。

顯而易見的一點是,這就是計算機的工作方式,將字符串'Hello' (例如)表示為每個字符的數字,特別是一個字節(假設是ASCII編碼)。

但是......我想對該數字執行算術計算(使用RSA其編碼為數字)。

這變得混亂的原因是因為假設我有一個更大的字符串'I am an average length string'我有更多的字符(在這種情況下為 29),並且一個 29 字節的整數可能會很大,對於計算機來處理(當想出更大的字符串時......?)。

基本上,我的問題是,我該怎么辦? 我不想為RSA使用任何模塊,這是我想自己實現的任務。

這是將字符串轉換為單個數字的方法。 正如您所懷疑的,這個數字會變得非常大,但 Python 可以處理任意大小的整數。 使用加密的通常方法是一次處理單個字節,但我假設這僅用於學習體驗。 這假設是一個字節字符串,如果您有一個 Unicode 字符串,您可以先編碼為 UTF-8。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM