Python 从变量生成AES密钥
我想用Python编写一个自定义密钥生成器。此密钥将作为AES算法的输入(与纯文本一起)进行加密(我可能会使用Python 从变量生成AES密钥,python,encryption,cryptography,Python,Encryption,Cryptography,我想用Python编写一个自定义密钥生成器。此密钥将作为AES算法的输入(与纯文本一起)进行加密(我可能会使用pycrypto或m2crypto库进行加密) 但是密钥生成器必须是自定义的,因为它将根据用户提供的字符串生成密钥 str = date + case-id + name where: date = current date when a case was submitted (we work on separate security analysis cases, submitte
pycrypto
或m2crypto
库进行加密)
但是密钥生成器必须是自定义的,因为它将根据用户提供的字符串生成密钥
str = date + case-id + name
where:
date = current date when a case was submitted
(we work on separate security analysis cases, submitted on our ticketing tool)
name = person handling the case
case-id = the ticket id with which it was submitted.
解密程序(在不同的系统上)需要知道相同的密钥,以便解密数据
因此,对于特定的订单,必须为一组特定的日期
名称
和案例id
固定密钥,并且只有在值
或订单
中的任何一个发生变化时,密钥才会不同,并且不应每次都是随机的
我已经阅读了一些stackoverflow文章,其中建议使用
random_key = os.urandom(16)
但我不相信这会达到我的目的
如果我想从头开始设计一个密钥生成器,或者对现有库提出一些建议,我将不胜感激 您正在寻找一种算法,例如Argon2或PBKDF2。它将允许您确定地将从输入值生成的“密码”扩展到合适的密钥中
但是,请注意,您的密码可能仍然很弱。我怀疑病例id和日期之间有很强的相关性。名字可能只是很容易找到的一小部分人。另外,这些数据不是由您的系统随加密数据一起发送的吗?这使得将其用作密码成为一个坏主意