gpt4 book ai didi

security - 就安全性而言,散列和加密的顺序有什么区别吗?

转载 作者:行者123 更新时间:2023-12-03 06:36:59 29 4
gpt4 key购买 nike

我正在用java实现一个密码库程序。我编写了一个用于加密的三重 DES 和一个用于散列的 SHA256。

我的问题是,如果我首先对原始数据(密码)进行哈希处理然后对其进行加密,或者先对数据(密码)进行加密然后对加密数据进行哈希处理,会有什么区别吗?我最关心的是,它是否会在安全方面做出任何重大改变。

谢谢

最佳答案

根据您的评论,您不想仅使用哈希作为消息身份验证代码。有适合此应用程序的基于哈希的 MAC(适本地称为 HMAC s)。在这种情况下,您可能想要使用 HMAC-SHA256。另请记住,您的 MAC 需要一个单独的 key (使用相同的 key 进行加密和 MAC 是一个很大的禁忌)。

但就您的问题本身而言,您的问题归结为先加密后 MAC 与先加密后加密。根据这个Crypto.SE answer ,最好的做法是先加密后 MAC,只要您确保对密文的所有内容进行 MAC 处理,包括 IV 和算法标识符(如果您允许使用 3DES 以外的加密算法)。您可以获得密文和明文的完整性,并且无需经过解密过程来验证明文。

关于security - 就安全性而言,散列和加密的顺序有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15385178/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com