【问题标题】:.NET Encryption/Decryption with shared keyphrase only.NET 加密/解密仅使用共享密钥
【发布时间】:2025-12-26 14:45:10
【问题描述】:

我的目标是使用商定的密钥短语和标准加密方案加密字符串,将其发送给第三方并让他们能够使用商定的密钥短语对其进行解密。

随着我对 .NET 加密类的深入研究(我想使用 AES),很明显它比我最初的复杂。从我理解的有限数量来看,似乎就共享关键短语达成一致是不够的。 salt和初始化向量都需要在加密和解密之间是通用的。

我错过了什么吗?有没有办法加密我想要的文本(使用 .NET)并让其他人能够仅使用共享密钥短语来解密消息?

我也不能依赖使用 .NET 解密消息的人。因此,我正在寻找一种标准的加密方法。

【问题讨论】:

    标签: .net encryption


    【解决方案1】:

    对于基于密码的安全加密,您确实需要双方都知道的每条消息盐和初始化向量。

    但是,这不是问题。 salt和IV应该在发送端随机生成,并与密文一起发送到目的地(如果观察者看到salt和IV就可以了——只要你为每条消息重新随机生成它们,这个不会损害系统的安全性)。

    无论如何,您都必须将密文发送到目的地,因此这只会增加少量必须发送的额外数据。目的地需要的唯一先验信息是密码。

    至于标准方法,您可以使用来自RFC2898 的PBES2。

    【讨论】: