C# 使用2048位密钥的RSA解密在windows server 2012 r2上为长度为340的加密文本提供了错误数据,而在windows 8上工作正常 rsacryptserviceprovider objRsaCrypto=新的rsacryptserviceprovider(); 字符串xmlString="2)一个新的概念。一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新概念,新的概念,新的概念,新概念,新概念,新的概念,新的概念,新的概念,新的概念,新的概念,新概念,新的概念,新概念,新的KHYTEYW==AQAB 8月8日,我在一家报纸上发表了一篇文章。6月8日,一家报纸8月8日,8月8日,8月8日,中国8月8日,8月8日,8月8日,8月8日,8日,7月8日,8日,8日,7月8日,7日,8日,6月8日,8日,7日,8日,8日,6月8日,8日,8日,6日,8日,8日,8日,8日,8日,7月8日,7日,8日,7日,8日,8日,8日,7月8日,7日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,7月8日,8日,8日,8日,8日,6月8日,8日B+hRVdC1QODqFb8C08YegM4.在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国QDAZ77ZZ737CQG8ETOFE=xEjq6.中国政府对中国政府提出了一个新的概念。6.中国政府对中国政府提出了一个新的概念,例如:中国政府对中国政府的一个研究。6.中国政府对北京市政府的一个研究。2.北京市政府对北京市政府对北京市政府提出了一个新的概念。6.中国政府对北京市政府对北京市政府提出了一个关于北京市政府对北京市政府的一个(BffffC/UdCd/b2vvvvvvvvvvvvvv8(ff8)ffffffffffffff8。ffvvvvvvvvvvv8(fffGfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffCZ1GZBWYILKGRZRBERE4NCJ/1i5LTbfweAMUo85KMfZDbGChlJUhd4vNiRPGmOeKCT1/xDAw/3ZKfUbhUjzBxg/1pthltv2wyedklpuq1rzmljactdd++fkt9x19UecfMpX7NmI43WLoc1x7ydtinrIO0b0NhFStXAPEQXlYyE4JvOSqIxJIbb/E7Vl5okVxOQ==”;//我的私钥 objRsaCrypto.FromXmlString(xmlString); 字符串cyphertextyear=”4.4.4.4.4.4.4.4 4.4 4.4.2在一篇文章中提到了一个关于未来未来未来的研究的一个关于未来未来的研究的文章。在这些研究中,他们是一个关于未来的研究的文章。4 4.4。他们是一个关于未来的一个关于未来的一个关于未来的研究,他们是一个关于未来的研究,他们是一个关于未来的中国的一个关于未来的研究,或者是一个关于未来的中国的一个关于关于未来的中国的非非非非政府的非非政府的非政府的非非政府的非政府的非政府的非政府的非政府非政府的非政府的非政府的非政府非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府FKCA0PP2OZ6ZF4IR";//我的密码文本 byte[]bytesCypherText=Convert.FromBase64String(cyphertextyear); byte[]bytesPlainTextData=objRsaCrypto.Decrypt(bytesCypherText,false); string strDecryptedVal=Encoding.ASCII.GetString(bytesPlainTextData);

C# 使用2048位密钥的RSA解密在windows server 2012 r2上为长度为340的加密文本提供了错误数据,而在windows 8上工作正常 rsacryptserviceprovider objRsaCrypto=新的rsacryptserviceprovider(); 字符串xmlString="2)一个新的概念。一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,一个新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新的概念,新概念,新的概念,新的概念,新概念,新概念,新的概念,新的概念,新的概念,新的概念,新的概念,新概念,新的概念,新概念,新的KHYTEYW==AQAB 8月8日,我在一家报纸上发表了一篇文章。6月8日,一家报纸8月8日,8月8日,8月8日,中国8月8日,8月8日,8月8日,8月8日,8日,7月8日,8日,8日,7月8日,7日,8日,6月8日,8日,7日,8日,8日,6月8日,8日,8日,6日,8日,8日,8日,8日,8日,7月8日,7日,8日,7日,8日,8日,8日,7月8日,7日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,7月8日,8日,8日,8日,8日,6月8日,8日B+hRVdC1QODqFb8C08YegM4.在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国,在中国QDAZ77ZZ737CQG8ETOFE=xEjq6.中国政府对中国政府提出了一个新的概念。6.中国政府对中国政府提出了一个新的概念,例如:中国政府对中国政府的一个研究。6.中国政府对北京市政府的一个研究。2.北京市政府对北京市政府对北京市政府提出了一个新的概念。6.中国政府对北京市政府对北京市政府提出了一个关于北京市政府对北京市政府的一个(BffffC/UdCd/b2vvvvvvvvvvvvvv8(ff8)ffffffffffffff8。ffvvvvvvvvvvv8(fffGfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffCZ1GZBWYILKGRZRBERE4NCJ/1i5LTbfweAMUo85KMfZDbGChlJUhd4vNiRPGmOeKCT1/xDAw/3ZKfUbhUjzBxg/1pthltv2wyedklpuq1rzmljactdd++fkt9x19UecfMpX7NmI43WLoc1x7ydtinrIO0b0NhFStXAPEQXlYyE4JvOSqIxJIbb/E7Vl5okVxOQ==”;//我的私钥 objRsaCrypto.FromXmlString(xmlString); 字符串cyphertextyear=”4.4.4.4.4.4.4.4 4.4 4.4.2在一篇文章中提到了一个关于未来未来未来的研究的一个关于未来未来的研究的文章。在这些研究中,他们是一个关于未来的研究的文章。4 4.4。他们是一个关于未来的一个关于未来的一个关于未来的研究,他们是一个关于未来的研究,他们是一个关于未来的中国的一个关于未来的研究,或者是一个关于未来的中国的一个关于关于未来的中国的非非非非政府的非非政府的非政府的非非政府的非政府的非政府的非政府的非政府非政府的非政府的非政府的非政府非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府的非政府FKCA0PP2OZ6ZF4IR";//我的密码文本 byte[]bytesCypherText=Convert.FromBase64String(cyphertextyear); byte[]bytesPlainTextData=objRsaCrypto.Decrypt(bytesCypherText,false); string strDecryptedVal=Encoding.ASCII.GetString(bytesPlainTextData);,c#,encryption,rsa,windows-server-2012-r2,pkcs#1,C#,Encryption,Rsa,Windows Server 2012 R2,Pkcs#1,我正在使用RSACryptoServiceProvider,解密在windows 8中工作正常,但在windows server 2012 r2中失败,出现以下异常 System.Security.Cryptography.Cryptography异常:错误数据 在 系统。安全。加密。加密异常。ThrowCryptographicException(Int32 hr)在 System.Security.Cryptography.RSACryptServiceProvider.DecryptKey

我正在使用RSACryptoServiceProvider,解密在windows 8中工作正常,但在windows server 2012 r2中失败,出现以下异常

System.Security.Cryptography.Cryptography异常:错误数据

在 系统。安全。加密。加密异常。ThrowCryptographicException(Int32 hr)在 System.Security.Cryptography.RSACryptServiceProvider.DecryptKey(SafeKeyHandle pKeyContext,字节[]pbEncryptedKey,Int32 cbEncryptedKey,布尔值 fOAEP,ObjectHandleOnStack OhrettedDecryptedKey)
在System.Security.Cryptography.RSACryptoServiceProvider.Decrypt(字节[])处 rgb,布尔值fOAEP)在


你的密文太短了

bytesCypherText
的长度是255,但是2048位的键会产生256字节的响应

似乎以前版本的Windows接受的时间太短,并且实际上在值前面加了额外的零字节,因此他们停止了这样做。(最有可能的是,最初的CAPI提供商有接受“太短”的行为,但后来它们被呼叫到驱动CNG的同一后端所取代;而且它可能只接受大小正确的数据。)

如果你的密文base64是

  RSACryptoServiceProvider objRsaCrypto= new RSACryptoServiceProvider();
string xmlString = "<RSAKeyValue><Modulus>vafMwhQ1Z+zx1tpcUybDONf3M7IG8Xw6Q0eCsuWMRniqwUklnzndo9ExuAFC87oAywOcSSzSncLEgILxjiyNmnBe28whdDg+P1PJmDchmBIjzQKNpDIppOiaxGOUR8KqBwIMp24dZQtUqb9mElEEz5bOxZUwHLg2/fJ9bT+eE+VluHtYfuuS/nbhrvI6BHN2bm2CyITBAvT6loCm7mV/JZ0fT9nCsyn6rUsp+YCVbhrfMnyz9aW7NEkwncE7xz78LSIHaYgB19nPu5jkR6yUCLsNDV9wnOBjb1Xuh7NqTjt2yOAcH+Gt5ixukfKBROq67FlnQKZOa+mQNzkhytEeyw==</Modulus><Exponent>AQAB</Exponent><P>4tDAYRgWNcyB5dCN7kF8QUa4ddiw6siEblGnjcFpdrQLyJxFvCZ7Jlc/59Wmr8B/1G06coRla5NLBCtvh/Itovacfp00wNif5pBb/Tp9+quw5/GGSu/4/K/Ke0wQuhHdWNjzAriNxbpCRWD/EgzNngWS8KlufdymZyju6AWyEZk=</P><Q>1g8B7fQ3SMDZ2EyaiSscchj3lshJx9VR8EAN70aipu45LRsOWuHH7wTkfqp1LuB06LyCr7XLMwUQYrBM8mJOhtxsiissXe+Phw1kcXJo6hBrCPgfSKSkuHT8iR7OgZbzYA8zwMmr+m2WOuDsgxrQcb+hRVdC1QODqFb8C08YegM=</Q><DP>vW5Zbf4e9pmx142CLH3219HH12y9/aiwqi56QPNLML+Yo9iYiVaePdxa3DZdO6YLXRBI40HeLqVa3sWkJadHJDbRZxHG8FU73uWsXmcOtl/UpTLb1RRtICV1d9qEkdK/yiePdjNK/Nvd43HqNloJFLRVD7iCNo4lUD0ooxG2sek=</DP><DQ>BCeWaf/rcsYLdF9IQJFNpAlIBO0uQWqqhHc5zgMY9RR6l52G0czADKuTo8G7NIW2vy2pe6+TmhHnF4NEew/dZlCw6p2b5tbXek+QO4N09dYLvcjTEp3fdJUQsbifWXSMlLi20G8Zn2qxF8N107WZhhuqDaZ77ZZ737CQg8etOfE=</DQ><InverseQ>xEjq9mm61gofysxxgM6SnX5TQ5Lnpq0AvnsRBhQaatiGm8i+VnznMpk8zJgn/AspaYS62bFC/UdCd/b2VyXgZfBC/L1NdkIUNyOVAxNKhf95C4uQFFxe90RfuZjbbClFbm/tU7RmycHqciPXViI35tToF1CXMJsxd7q6M2iaXKc=</InverseQ><D>HVnfO/gBreRDJzOjDzFUDDOMK+F05qGJqMjj5sjUtUFOd9xYqLQ9Y3FoJuh3Ep4qKkEUSlTYAZdXbuYU+SJXBdw3KgAE+2YK6CUQ8XAy0ESaastm3U7wF/fxn8wjchmj07LS/4RwoycmQqD+7H3CZ1gZBwYILKGrzRBere4nCj/1i5LTbfweAMUo85KMfZDbGChlJUhd4vNiRPGmOeKCT1/xDAw/3ZKfUbhUjzBxg/1PThhLtv2wYEdkLpUq1RZmlJACtDD++fkt9x19UecfMpX7NmI43WLoc1x7ydtinrIO0b0NhFStXAPEQXlYyE4JvOSqIxJIbb/E7Vl5okVxOQ==</D></RSAKeyValue>";//my private key
  objRsaCrypto.FromXmlString(xmlString);
string cyphertextyear ="mell442PqhwZRDvAVawKhtspVWFsVG6x/6v7BzcaDvOFWImXOiq3hCZq6N0i7UpCkV8YVLLS/LTarWrSgrqskfQnIwA+inZIhfZLm3odUrYpBCMXJh9Y7s+6ugqiwpMu1xap9LBqhP7LdChwIV0c7GimgZKVVk7mZHBgmVOHRSx61RAx6HDkc0F7dfjBR+jUQR08knu4MUUNx7xQ6pSkg1MyTwrX4upMoodccBwni+cUFZWmIeEHazMMd2r6PkuwMvHkueFm0B4UsWnsqHtjgQuU5zmGx9rWpDIyDCKNTvWkTyB1lUrhpNk6qqeFZXVPPTsxfKcA0Pp2oz6ZF4ir";//my cypher text

 byte[] bytesCypherText = Convert.FromBase64String(cyphertextyear);
 byte[] bytesPlainTextData = objRsaCrypto.Decrypt(bytesCypherText, false);
  string strDecryptedVal = Encoding.ASCII.GetString(bytesPlainTextData);
你可能会有更好的运气

或者:

AJnpZeONj6ocGUQ7wFWsCobbKVVhbFRusf+r+wc3Gg7zhViJlzoqt4QmaujdIu1KQpFfGFSy0vy02q1q
0oK6rJH0JyMAPop2SIX2S5t6HVK2KQQjFyYfWO7PuroKosKTLtcWqfSwaoT+y3QocCFdHOxopoGSlVZO
5mRwYJlTh0UsetUQMehw5HNBe3X4wUfo1EEdPJJ7uDFFDce8UOqUpINTMk8K1+LqTKKHXHAcJ4vnFBWV
piHhB2szDHdq+j5LsDLx5LnhZtAeFLFp7Kh7Y4ELlOc5hsfa1qQyMgwijU71pE8gdZVK4aTZOqqnhWV1
Tz07MXynAND6dqM+mReIqw==
if(bytesCypherText.Length*8
@ArtjomB感谢您的回复。我已经包括了私钥和cyphertext。@WazeAndroid数据不长。也许有必要知道安装了哪个.Net版本。顺便说一下,我发现了两个在线c#代码执行站点,其中和。
if (bytesCypherText.Length * 8 < objRsaCrypto.KeySize)
{
    byte[] tmp = new byte[objRsaCrypto.KeySize / 8];
    Buffer.BlockCopy(
        bytesCypherText,
        0,
        tmp,
        tmp.Length - bytesCypherText.Length,
        bytesCypherText.Length);

    bytesCypherText = tmp;
}

byte[] bytesPlainTextData = objRsaCrypto.Decrypt(bytesCypherText, false);