我已经使用 RNGCryptoServiceProvider 生成了随机数,下一个要求是生成一个可用于加密/解密目的的私有、公共 RSA 密钥对。
如何使用该随机数构造 RSAParameters 对象,因为可以导入 RSA 参数以创建 RSACryptoServiceProvider 对象,该对象最终将用于加密原始数据。
我已经使用 RNGCryptoServiceProvider 生成了随机数,下一个要求是生成一个可用于加密/解密目的的私有、公共 RSA 密钥对。
如何使用该随机数构造 RSAParameters 对象,因为可以导入 RSA 参数以创建 RSACryptoServiceProvider 对象,该对象最终将用于加密原始数据。
这就是我使用 BouncyCastlelink 将随机数转换为私钥/公钥对的方式
byte[] btRandomNumber = new byte[1000000];
using (RNGCryptoServiceProvider r = new RNGCryptoServiceProvider())
{
r.GetBytes(btRandomNumber);
}
int RsaKeySize = 1024;
Org.BouncyCastle.Security.SecureRandom secureRandom = new Org.BouncyCastle.Security.SecureRandom(btRandomNumber);
var keyGenerationParameters = new Org.BouncyCastle.Crypto.KeyGenerationParameters(secureRandom, RsaKeySize);
var keyPairGenerator = new Org.BouncyCastle.Crypto.Generators.RsaKeyPairGenerator();
keyPairGenerator.Init(keyGenerationParameters);
Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair keyPair = keyPairGenerator.GenerateKeyPair();
欢迎使用任何更正或其他方式来做到这一点