1
我不知道如何描述我的问题。这是对字节数组进行加密的最简单方法,并且我在.Encrypt(...)方法中实际得到“Unspecified Error”。使用C#.NET加密数据时未指定的错误RSA
byte[] cleartext =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x71, 0x77, 0x65, 0x72, 0x74, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x61, 0x73, 0x64, 0x66, 0x67, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
Logger.Hex("Clear test login text", cleartext);
byte[] ciphered = new RSACryptoServiceProvider(1024).Encrypt(cleartext, false);
Logger.Hex("Ciphered test login text", ciphered);
Console.Read();
注意:Logger.Hex显示字节数组的十六进制字符串表示形式。没有什么干扰。
据我所知,我没有使用任何填充(注意加密函数的第二个参数(bool false))。 – Lazlo 2009-09-08 01:14:10
请仔细阅读文档:“fOAEP:** false **使用PKCS#1 v1.5填充。” – dtb 2009-09-08 01:20:56
当。这实在是骗人的。我需要直接加密。 但是: 不支持直接加密和OAEP填充:对称密钥允许的最大大小。 是否有任何我需要的RSA自定义类?这个代码在某种程度上是Java的一个端口,可以支持直接加密。如果我无法直接加密/解密,我真的被卡住了。 – Lazlo 2009-09-08 01:36:39