我们有一个 C#/.Net 4.0 应用程序,它从 WebService 中收到的 Base64 字符串中导入 RSA 私钥。
此应用程序非常适用于 1024 位的 RSA 密钥,但不适用于特殊类型的 rsa 私钥(大约 1% 的密钥)。
以下是字节长度:
工作键:
- 模数 => 128 字节
- 指数 => 3 字节
- D => 128 字节
- P => 64 字节
- Q => 64 字节
- DP => 64 字节
- DQ => 64 字节
- IQ => 64 字节
不工作键:
- 模数 => 128 字节
- 指数 => 3 字节
- D => 127 字节
- P => 64 字节
- Q => 64 字节
- DP => 64 字节
- DQ => 64 字节
- IQ => 64 字节
区别在于 D 的长度(128 工作,127 不工作)。非工作密钥比工作密钥短 1 个字节。
参数已设置,但在执行 RSA.ImportParameters(rsaParams) 时,它会引发 CryptographicException 并带有“Bad Data”消息。
应该包括什么来解决这个问题?