Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 需要创建短输出字符串的双向加密解决方案_C# 4.0_Encryption - Fatal编程技术网

C# 4.0 需要创建短输出字符串的双向加密解决方案

C# 4.0 需要创建短输出字符串的双向加密解决方案,c#-4.0,encryption,C# 4.0,Encryption,可能重复: 我需要加密一个字符串,也能够解密它。我的问题是,我需要保持加密字符串尽可能短,理想情况下与输入字符串相同的长度。我看过密码学类,但最小的大小似乎使用64位块。这意味着,如果我的字符串是九个字符长的,我最终会得到一个更长的、填充的、加密的字符串。我需要能够读取加密字符串的人通过电话,所以一个简短的代码是必须的。有人能推荐一个解决方案吗?或者我需要编写自己的加密类来实现这一点吗?如果您不介意字符串稍微变长,您可以使用任何传统的分组密码进行加密。额外的长度来自这样一个事实,即您必须在输出

可能重复:


我需要加密一个字符串,也能够解密它。我的问题是,我需要保持加密字符串尽可能短,理想情况下与输入字符串相同的长度。我看过密码学类,但最小的大小似乎使用64位块。这意味着,如果我的字符串是九个字符长的,我最终会得到一个更长的、填充的、加密的字符串。我需要能够读取加密字符串的人通过电话,所以一个简短的代码是必须的。有人能推荐一个解决方案吗?或者我需要编写自己的加密类来实现这一点吗?

如果您不介意字符串稍微变长,您可以使用任何传统的分组密码进行加密。额外的长度来自这样一个事实,即您必须在输出中包含一个unique,否则它是不安全的

例如,假设您不打算加密超过一百万个字符串,您可以将nonce选择为四个字母数字字符。这样,您的总空间为364≈ 168万个可能的临时数字。您只需跟踪已经使用的nonce,这样就不会重复使用它们。 (如果随机选择nonce,则必须使其长度增加一倍左右,因为


如果您不想让字符串在加密时变得更长,您需要的是。

这不是重复的-如果您阅读了另一个线程,它实际上是在询问其他内容(标题非常糟糕)。这里没有提到流密码——这是一个很好的答案。