社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何根据python中的种子生成特定大小的密钥

Chase • 5 年前 • 1354 次点击  

我用的是 pycryptodome 模块及其AES功能来加密某些数据。但是我需要为 AEScipher 我以后可以找回的。该项目以图像的形式存储所有私有数据(包括密钥)。基本上我们使用一个像素数组并使用 PIL 并使用 getdata() 功能。

要创建图像:-

array = numpy.array(pixels, dtype = numpy.uint8)
new_image = Image.fromarray(array)
new_image.save('user_key.png')

整数元组列表 [[(...), (...)], [(...), (...)], ...] 这是带钥匙的物体 要从图像中获取密钥,请执行以下操作:-

im = Image.open(image_path)
return list(im.getdata())

AES key ,假设我用 Random.get_random_bytes(AES.key_size) 从加密模块。

如何生成加密安全密钥,同时使用 pixels ,比如一个整数元组?

编辑:-

要详细说明,pixels对象是 整数元组列表 像素对象的第0个索引 可能看起来像这样- [(69, 147, 245), (120, 212, 198), ...] 这个 key_list 我指的对象实际上是 list(im.getdata()) . 这是一个 整数元组列表 ,每个元组包含3个整数,每个整数的范围为0到255。这看起来像这样- [(69, 147, 245), (120, 212, 198)....] 关键字列表第0个索引 (69, 147, 245)

我需要将AES密钥存储在与这些值相同的位置。理想情况下,我希望将AES密钥存储为3个从0到255的整数的元组。所以是的,我需要将AES密钥转换为元组,然后将其存储在 .

另一个关键细节是,元组包含3个整数,因为它们分别表示用于创建图像的RGB值。我相信元组可以用4个整数来表示RGBA值。这样就解决了3的倍数问题。

但还有一个问题。每个元组 实际上是通过 [i for i in itertools.product(range(256), repeat=3)] . 为了生成一个由4个整数而不是3组成的元组,我必须更改 repeat=3 repeat=4 ,这会引起纪念。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56627
 
1354 次点击  
文章 [ 1 ]  |  最新文章 5 年前