我已經提供了M,Exponent和D組件以及RSA參數,並試圖在C#.NET中使用它進行加密。我在想知道哪些組件需要加密數據?另外,基數爲16的指數爲10001.我應該在C#中設置RsaParameters.Exponent參數?我不知道我應該如何解釋這個數字,並將它放在一個字節數組的Exponent中。基礎16中的組件不需要有均勻的長度嗎?設置RSA參數
謝謝。
我已經提供了M,Exponent和D組件以及RSA參數,並試圖在C#.NET中使用它進行加密。我在想知道哪些組件需要加密數據?另外,基數爲16的指數爲10001.我應該在C#中設置RsaParameters.Exponent參數?我不知道我應該如何解釋這個數字,並將它放在一個字節數組的Exponent中。基礎16中的組件不需要有均勻的長度嗎?設置RSA參數
謝謝。
這裏是一個sample of code 所以,你應該設置指數作爲數字65537(10001在基地16)的字節表示。 我不太確定它是如何在RSACryptoServiceProvider
中工作的,但是如果您使用的是OpenSSL,BitConverter.GetBytes(65537)
是一個壞主意,因爲它是{1, 0, 1, 0}
,但不是{1, 0, 1}
,它不能正常工作。所以,我認爲這是更好地留在某種程度上,它在MSDN的例子中寫道:
byte[] Exponent = {1,0,1};
RSAParameters rsaKeyInfo = new RSAParameters
{
Exponent = new byte[] {1, 0, 1},
...
};
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.ImportParameters(rsaKeyInfo);
rsa.Decrypt(...)
}
我不知道你的M是什麼。你需要n和e來加密消息。他們構成了公鑰。 n是兩個大素數的乘積,e是指數。你的d是私鑰的一部分。你需要它來解密數據。請提供更多關於M實際是什麼的信息。 – stmax
我認爲哈米德的意思是「N」,模數。 –