我需要在我正在进行的一个项目中使用一些加密机制。我正在探索 RSA 加密并编写了一些示例程序来学习。
我了解 RSA 加密的块大小为 16 个字节。因此,我将字符串“12345678”作为以下函数的输入:
公共静态字符串加密(字符串输入){ var byteConverter = new UnicodeEncoding (); RSACryptoServiceProvider cruptoEngine = new RSACryptoServiceProvider(); byte[] output = cruptoEngine.Encrypt (byteConverter.GetBytes (input), false); 返回 BytesToString(输出);//BytesToString() 将字节转换为十六进制字符串 }
现在我得到的加密字符串是 128 个字节(256 个十六进制字符)。这个字符串对我来说太大了。我有点希望如果我提供 16 字节的纯数据,我会得到 16 字节的加密数据。难道我做错了什么?这是应该发生的事情吗?我可以以某种方式缩短加密数据吗?