Se chiamo os.urandom (64), mi vengono dati 64 byte casuali. Con riferimento alla Convert bytes to a Python string ho provatoCome posso convertire un python casuale in una stringa?
a = os.urandom(64)
a.decode()
a.decode("utf-8")
ma ottenuto l'errore traceback affermando che i byte non sono in UTF-8.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 0: invalid start byte
con i byte
b'\x8bz\xaf$\xb6\x93q\xef\x94\x99$\x8c\x1eO\xeb\xed\x03O\xc6L%\xe70\xf9\xd8
\xa4\xac\x01\xe1\xb5\x0bM#\x19\xea+\x81\xdc\xcb\xed7O\xec\xf5\\}\x029\x122
\x8b\xbd\xa9\xca\xb2\x88\r+\x88\xf0\xeaE\x9c'
Esiste un metodo Fullproof per decodificare questi byte in qualche rappresentazione di stringa? Sto generando token casuali sudo per tenere traccia dei documenti correlati su più motori di database.
strano modo di farlo ... Perché non solo ha un db di più "centrale" che genera il proprio ID, che si riferisce agli altri ID ... ? Oppure, invece di usare 'urandom' - perché non usare uuid4 o simili? –
Può essere usato anche per generare un seme casuale? – Pinocchio
Django genera una logica di stringa casuale. https://github.com/django/django/blob/master/django/utils/crypto.py#L51 – bgth