以下代码试图获取由RSACryptoServiceProvider
生成的两个RSA素数。我正在测试primeq
的素数,它总是变成非素数。我在这里做错了什么?
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(384);
var p = rsa.ExportParameters(true);
var primeq = new BigInteger(p.Q);
答案 0 :(得分:1)
我自己也在努力解决这个问题。我发现有两个问题。
If cell.Offset(,1).Value = "ACCEPT" And cell.Offset(,2).Value = "ST" Then fgSht.Cells(fgSht.Rows.Count, 1).End(xlUp).Offset(1).Value = cell.Offset(1).Value
使用BigInteger
RSACryptoServiceProvider
已签名并使用两个恭维符号,而RSA密钥是无符号整数。要解决此问题,我会修改您的代码,如下所示:
BigInteger
使用以下代码测试:
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(384);
var p = rsa.ExportParameters(true);
var primeq = new BigInteger(p.Q.Reverse().Concat(new Byte[1]).toArray());