C# 在RSA c中生成不同的密钥#
我想使用C# 在RSA c中生成不同的密钥#,c#,cryptography,rsa,C#,Cryptography,Rsa,我想使用rsacyptoserviceprovider生成2对uniq公钥/密钥。这是我的密码 public static byte[] publicKeyAlice, publicKeyBob, privateKeyAlice, privateKeyBob, publicKeyTrent, privateKeyTrent; using (var rsa = new RSACryptoServiceProvider(KEY_SIZE)) { publicKeyAlice = rsa.Ex
rsacyptoserviceprovider
生成2对uniq公钥/密钥。这是我的密码
public static byte[] publicKeyAlice, publicKeyBob, privateKeyAlice, privateKeyBob, publicKeyTrent, privateKeyTrent;
using (var rsa = new RSACryptoServiceProvider(KEY_SIZE))
{
publicKeyAlice = rsa.ExportCspBlob(false);
privateKeyAlice = rsa.ExportCspBlob(true);
privateKeyBob = rsa.ExportCspBlob(true);
publicKeyBob = rsa.ExportCspBlob(false);
}
但是当我看数组
publickeyalis
和publicKeyBob
时,它们是相同的。请帮助我使它们不同。为每个密钥对创建不同的提供者:
using (var rsa = new RSACryptoServiceProvider(KEY_SIZE))
{
publicKeyAlice = rsa.ExportCspBlob(false);
privateKeyAlice = rsa.ExportCspBlob(true);
}
using (var rsa = new RSACryptoServiceProvider(KEY_SIZE))
{
privateKeyBob = rsa.ExportCspBlob(true);
publicKeyBob = rsa.ExportCspBlob(false);
}
对我有用。你是说对你来说,publicKeyAlice和publicKeyBob是一样的吗?在我看来,你没有两次生成任何东西。导出某些内容并不是生成某些内容。您似乎不了解RSACryptoserviceProvider类,尽管从其名称来看,它听起来像是生成密钥对的服务,但可以将其视为密钥本身。使用其构造函数(已创建的密钥对)创建RSACryptServiceProvider后,ExportCspBlob将仅将已创建的密钥对导出到blob表单中。因此,您需要为每个密钥对构造一个RSACryptServiceProvider。