Post

Convertire una stringa in int in python

Ti serve convertire una stringa in un intero? Se può esservi utile in un vostro progetto, come l’implementazione da zero di RSA, questo è il posto giusto per saperlo.

Per convertire una stringa in int si possono usare due modi:

Int.from_bytes

Questo metodo è integrato nella libreria standard di python ed è quello che consiglio

1
print(int.from_bytes("Ciao".encode(),"big")) #1130979695

Si passa il primo argomento come stringa codificata in bytes (usando .encode()), nel secondo argomento si passa invece l’ordine dei bytes (molto semplificato)

La differenza tra i due sistemi è data dall’ordine con cui i byte costituenti il dato da immagazzinare vengono memorizzati o trasmessi:

  • big-endian: memorizzazione/trasmissione che inizia dal byte più significativo (estremità più grande) per finire col meno significativo, è utilizzata dai processori Motorola;
  • little endian: memorizzazione/trasmissione che inizia dal byte meno significativo (estremità più piccola) per finire col più significativo, è utilizzata dai processori Intel;

(Grazie Wikipedia)per saperne di più leggete qui

bytes_to_long

A differenza del metodo sopracitato, questo si deve importare dalla libreria Crypto (scaricando pycryptodome)

Un vantaggio è che converte automaticamente la stringa in bytes

1
2
from Crypto.Util.number import bytes_to_long 
print(bytes_to_long("string")) #126943972912743
A presto!
This post is licensed under CC BY 4.0 by the author.