【发布时间】:2012-06-26 01:32:20
【问题描述】:
我正在尝试使用 RSACryptoServiceProvider 加密一个 256 字节的数组,但每次都会出现“错误长度”的异常。
byte[] seed = new byte[256];
byte[] cypherSeed = new byte[256];
RNGCryptoServiceProvider gen = new RNGCryptoServiceProvider();
gen.GetBytes(seed);
using (RSACryptoServiceProvider rsaCryptoServiceProvider = new RSACryptoServiceProvider(2560))
{
RSAParameters param = new RSAParameters();
param.Exponent = this.exponent;
param.Modulus = this.modulus;
// set public keys
rsaCryptoServiceProvider.ImportParameters(param);
cypherSeed = rsaCryptoServiceProvider.Encrypt(seed, false);
}
我做错了什么??!!
【问题讨论】:
-
顺便说一句。你的代码太慢了。您创建
RSACryptoServiceProvider的方式会导致创建 2560 位密钥,这非常慢(除非 .net 最近进行了延迟初始化,如单声道)。
标签: c# encryption cryptography rsa padding