C# 中的相同长度输出加密和解密
本文关键字:输出 加密 解密 | 更新日期: 2024-11-10 05:01:30
可能的重复项:
如何加密字符串并获得等长的加密字符串?
我是加密和解密的新手。我有一个长度为 24 个字符的字符串。我需要加密和解密单词。加密可能不太安全,但我需要加密的单词应该与输入字符串(24 个字符)的长度相同。我已经通过网络搜索并找到了一些示例加密算法(AES,MD5)。但是加密字比输入字符串太长。这是我们将与客户共享的产品密钥,因此不需要强加密。如果您共享示例代码,这将很有用。
使用 Vernam 密码。对于具有真正随机生成的密钥的单个字符串,理论上它是牢不可破的。如果您开始对多个字符串使用相同的密钥,则会大大降低其安全性,但显然您不是在寻找最大的安全性。如果是,您必须能够为每个加密密码提供不同的随机密钥。
虽然你可以在网络上找到很多示例代码,但我认为你自己实现它是一个很好的做法。这很简单。
您正在寻找的似乎是保留格式的加密,我认为在 .NET 中没有任何实现(我当然没有使用过任何)。 您可能需要为此想出一个自定义算法。 你说不需要强加密,但你显然需要算法不明显。 不幸的是,实际上有数百种方法可以做到这一点,所以这取决于哪一种适合你。
这似乎是加密算法的好帖子
要使密码文本与纯文本的长度相同,请使用流密码。 这可以是CTR模式下的块密码,例如AES-CTR,也可以是专用流密码,例如Rabbit或RC4。
请注意,您不能为流密码重复使用密钥,否则攻击者可能会破坏加密。 使用相同密钥的两个密码文本可用于完全消除密钥,只留下两个明文。
如果您只有一个 24 字节的字要加密,那么这不是问题。如果您需要加密多个数据,则密钥管理变得很重要。