我正在开发一个本地文件加密/解密软件(AES-256 CBC),我想验证解密是否成功。
因此,我决定添加一个普通数据的附加MD5哈希,并将其加密到一起,在解密时,计算解密数据的MD5哈希(上一次附加MD5哈希除外),并将其与最后附加的MD5哈希进行比较。
我想知道这个想法是否安全。
这是个坏主意吗?
发布于 2017-05-25 13:39:52
您也可以使用MAC验证您的解密。MAC和Hash代码的主要区别是概念上的。散列用于保证数据的完整性,MAC保证完整性和身份验证。
这意味着在没有任何外部输入的情况下,从消息中盲目地生成哈希码:您获得的是一些可以用来检查消息在传递过程中是否有任何更改的东西。
MAC使用私钥作为生成代码时使用的哈希函数的种子:这应该确保接收方不仅消息没有被修改,而且发送消息的人也是我们所期望的:否则攻击者无法知道用于生成代码的私钥。
Cryptographic primitive | Hash | MAC | Digital
Security Goal | | | signature
------------------------+------+-----------+-------------
Integrity | Yes | Yes | Yes
Authentication | No | Yes | Yes
Non-repudiation | No | No | Yes
------------------------+------+-----------+-------------
Kind of keys | none | symmetric | asymmetric
| | keys | keys发布于 2017-05-25 13:44:23
我在许多帖子中看到,MD5不再安全了,但是,您将它用作校验和,而不是会话id或密码哈希。如果对MD5的攻击并不是因为它在加密代码中,并且没有用作密码哈希、会话id或类似的攻击,那么我认为您可以使用它,但是如果您想在安全方面更改SHA-2摘要的MD5。
https://stackoverflow.com/questions/44181766
复制相似问题