如何在 python 中为 AES 生成强一次性会话密钥
我使用 M2Crypto 的 AES 来加密消息,但对如何生成强随机会话密钥以及长度感到困惑。 M2Crypto 是否提供生成随机密钥的功能。
I am using M2Crypto's AES for encrypting message, but confused about how to generate a strong random session key and of what length. Does M2Crypto provide any function for generation random key.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
AES-128 具有 128 位密钥 = 16 字节。
应该足以满足大多数用途。当您将此随机值提供给 M2(或任何加密库)时,它会在内部转换为实际用于加密的“密钥时间表”。
AES-128 has 128 bit key = 16 bytes.
should be sufficient for most uses. When you feed this random value to M2 (or whatever crypto library), it is transformed internally into a "key schedule" actually used for encryption.
M2Crypto 因缺乏良好的文档而臭名昭著。
以下是我从他们的测试用例中收集到的内容:
M2Crypto is notorious for lack of good documentation.
Here is what I could gather from their test cases:
如果您要加密发送给另一方,那么您需要执行 Diffie Hellman 或 ECDH 密钥交换之类的操作来建立共享密钥。如果您只想加密存储,那么您需要一个安全的随机数生成器。我不相信 M2Crypto 提供了这个?
看来 M2Crypto 确实支持 Diffie Hellman。
If you are encrypting to send to another party then you want to do something like Diffie Hellman or ECDH key exchange to establish a shared secret. If you just want to encrypt for storage, then you need a secure random number generator. I do not believe M2Crypto provides this?
It looks like M2Crypto does support Diffie Hellman.