2013-08-15 19 views
6

numaralı yazıcıda yazdırın Terminalde os.urandom(n) çıkışını nasıl yazdırabilirim?Python os.urandom çıkışını

Bir fabRile ile bir SECRET_KEY oluşturmaya çalışıyorum ve 24 bayt çıktı olacak. ne istediğini onaltılık kodlanmış dize ise

>>> import os 
>>> out = os.urandom(24) 
>>> out 
'oS\xf8\xf4\xe2\xc8\xda\xe3\x7f\xc75*\x83\xb1\x06\x8c\x85\xa4\xa7piE\xd6I' 
>>> print out 
oS�������5*������piE�I 

cevap

7

, binascii.a2b_hex (veya hexlify) kullanın:

>>> out = 'oS\xf8\xf4\xe2\xc8\xda\xe3\x7f\xc75*\x83\xb1\x06\x8c\x85\xa4\xa7piE\xd6I' 
>>> import binascii 
>>> print binascii.hexlify(out) 
6f53f8f4e2c8dae37fc7352a83b1068c85a4a7706945d649 
+0

Bu hex kodlu dize bayt sürümüne eşit mi? Webapp'da bir anahtar anahtarı olarak kullanmak için? – danbruegge

+0

@haengebruegge, Hayır, eşit değiller ('out! = Binascii.hexlify (out)'). Webapp'un ne anlama geldiğini bilmiyorum. – falsetru

+0

Örneğin django veya flask ile bir web sitesi kurmak. Hem gizli bir anahtara ihtiyaçları var. https://docs.djangoproject.com/en/dev/ref/settings/#secret-key veya http://flask.pocoo.org/docs/api/#flask.Flask.secret_key – danbruegge

1

sadece inşa kullanmak için i piton kabuğunda hem varyantları nasıl uyguladıklarını

Örnek -ins, tamsayı değerini ord ile alabilir ve daha sonra onaltılık bir sayıya dönüştürebilirsiniz:

0 Sadece altıgen listesi istiyorsanız

ardından str() ve [2:]

bu çıkışı ve hexify() sürümü

hem tip str ve web uygulaması için sorunsuz çalışır gereksizdir.

+1

The str() tamamen gereksiz - 'hex()' işlevi zaten bir str döndürür ... – glglgl

İlgili konular