ooo*_*o0o 0 md5 cryptography aes
我正在开发一个本地文件加密/解密软件 (AES-256 CBC),我想验证解密是否成功。
所以我决定在普通数据的末尾添加一个额外的明文数据的MD5哈希值并一起加密,解密时,计算解密数据的MD5哈希值(最后一个附加的MD5哈希值除外)并将其与最后一个附加的MD5哈希值进行比较。
我想知道这个想法是否可以安全使用。
这是一个坏主意吗?
您还可以使用 MAC 来验证您的解密。MAC 和哈希码之间的主要区别是概念上的。散列用于保证数据的完整性,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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
880 次 |
| 最近记录: |