![](/img/trans.png)
[英]How can I convert 128-bit AES encryption key to a string using Python?
[英]How can i generate random key for aes encryption
我是python的新手。 我正在處理有關使用 AES 進行文件加密的代碼
https://stackoverflow.com/a/20868265/2955896
它使用此密鑰進行加密
key = b'\xbf\xc0\x85)\x10nc\x94\x02)j\xdf\xcb\xc4\x94\x9d(\x9e[EX\xc8\xd5\xbfI{\xa2$\x05(\xd5\x18'
如何隨機生成密鑰以使無法解密?
最實用的方法是從操作系統提供的任何隨機設備讀取隨機數據。 這可以通過使用os.random()
方便地訪問;
In [1]: import os
In [2]: os.urandom(128)[:10]
Out[2]: b'\xee&\x06s?\x8d\xfcI=\x07'
(為方便起見,僅顯示前 10 個字節。)
每次調用它都會返回不同的數據;
In [3]: os.urandom(128)[:10]
Out[3]: b')\x12TQ\xf5\xa3G\xe2\xb00'
In [4]: os.urandom(128)[:10]
Out[4]: b'\xce\xba\xd2Gr\x8c6\xba\xb7\x91'
In [5]: os.urandom(128)[:10]
Out[5]: b'~\x00\xca\x0c=\xd3\xff\xef\xc8\x14'
In [6]: os.urandom(128)[:10]
Out[6]: b'\xb0~vb"\xd6(F\xb7v'
編輯:
從 Python 3.6 開始,您應該將secrets
模塊用於加密強隨機數。 例如:
In [1]: import secrets
In [2]: secrets.token_urlsafe(32)
Out[2]: 'SgkZmSckZcSB3a4uK-SFPN6vevgx231sHs-aE5GlP-g'
截至 2015 年,32 是請求的默認字節數;
In [3]: secrets.token_urlsafe()
Out[3]: 'qbmwK_2-_f6UQOTLJcweYcwZQze8lo3dtIuEKWhpb_w'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.