【发布时间】:2009-06-10 12:44:12
【问题描述】:
我正在尝试加密一些简单的东西,比如 int 或 long。我发现的最简单的方法如下:
int num = 2;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] numBytes = BitConverter.GetBytes(num);
byte[] encryptedBytes = rsa.Encrypt(numBytes, true);
问题是,encryptedBytes 的长度为 128 字节。如果加密结果与输入的字节长度相同,我该如何加密数据(我以后仍可以解密)?
我知道如果我定义 RSACryptoServiceProvider(512) 或 RSACryptoServiceProvider(384),我可以缩短结果,但这已经是最低限度了。
我需要输入 4 或 8 个字节,输出 4 或 8 个字节(分别)
谢谢!
*** 澄清:
我想加密一些小的(即 4 或 8 个字节)并获得类似大小的结果。在 C# 中最简单的方法是什么,同时仍然使用一些键(使用内置库)而不是一些 mod 和 shift 操作
【问题讨论】:
-
为什么要加密一个小对象?如果我们对您想要整体完成有更好的了解,它可能会帮助您获得更好的答案
标签: .net encryption int rsacryptoserviceprovider