Tag: rsacryptoserviceprovider

使用.NET加密库在c#中使用.pem文件中的私钥解密

我知道这是一个与此类似的问题,但在我走下Bouncey Castle路线之前,是否有人知道是否可以从.pem文件加载RSA KeyPair,例如: —–BEGIN RSA PRIVATE KEY—– MIIBOgIBAAJBALKzy66nRuof8Fg0ItatyHS9RiDIKH0m5lorKzKn4y5wR6BXpVUv ZwnevrAJWBd6EPr/lcV3hjObxD6+q9vmN8ECAwEAAQJAGNcxWwfZrbXe3QPyS9FA aindU7U/G5aKssIJcTMxO0UYpGU+WArJbboKeEIE7bpNfhDOKTL7ZL6kWBR1Svlh WQIhAOhtx+xXuSrIot59tmXZaypBDjA4n+Xare0ObFLQxWuvAiEAxNMwm6w33bVr FHS9slkOh59Le2mgs0uNT6perHaRP48CIGMyRzrlDY/m5SvTtz6slgIIlceawxNU Sxp7J1wI4djdAiA6+BchHNjkCP2a9Fr9OydaRMSFpiDqduFQk/enbiKYSwIhANO3 SQ51oLFtWN9gX3tfKTXflyO6BV8rgPo980d9CEsb —–END RSA PRIVATE KEY—– 直接使用.NET 3.5加密库而无需参加第三方或自行滚动?

在C#中实现RSA

我目前正在尝试使用RSACrytoServiceProveider类实现一个类来处理我的应用程序实例之间的安全通信。 第一个问题:实现单个类来处理发送者/接收者角色或者我应该将角色分成单个类是一个好主意吗? 这是我到目前为止所做的: using System; using System.Text; using System.Security.Cryptography; namespace Agnus.Cipher { public class RSA { private byte[] plaintextBytes; private byte[] ciphertextBytes; private RSACryptoServiceProvider rSAProviderThis; private RSACryptoServiceProvider rSAProviderOther; public string PublicKey { get { return rSAProviderThis.ToXmlString(false); } } public RSA() { rSAProviderThis = new RSACryptoServiceProvider { PersistKeyInCsp = true }; plaintextBytes = Encoding.Unicode.GetBytes(PublicKey); } public […]

解码OAEP填充时发生错误

在使用RSACryptoServiceProvider.Decrypt解密文本时,我收到错误: 解码OAEP填充时发生错误。 这是我的代码: CspParameters cspParam = new CspParameters(); cspParam = new CspParameters(); cspParam.Flags = CspProviderFlags.UseMachineKeyStore; clsCertificates cc = new clsCertificates(); string a = “”; cc.OpenStoreIE(ref a); cc.SetProperties(); X509Certificate2 cert = new X509Certificate2(); cert = cc.x509_2Cert; RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cspParam); //to gentrate private and public keys from the certificate rsa.FromXmlString(cert.PublicKey.Key.ToXmlString(false)); String publicKey = rsa.ToXmlString(false); // […]

从公钥正确创建RSACryptoServiceProvider

我目前正在尝试仅从解码的PEM文件创建RSACryptoServiceProvider对象。 经过几天的搜索,我确实设法解决了一个有效的解决方案,但它不是一个可以生产就绪的解决方案。 简而言之,为了从组成PEM文件中的公钥的字节创建RSACryptoServiceProvider对象,我必须创建指定keysize的对象(当前使用SHA256的2048),然后使用Exponent导入RSAParameters对象和Modulus集。 我是这样做的; byte[] publicKeyBytes = Convert.FromBase64String(deserializedPublicKey.Replace(“—–BEGIN PUBLIC KEY—–“, “”) .Replace(“—–END PUBLIC KEY—–“, “”)); // extract the modulus and exponent based on the key data byte[] exponentData = new byte[3]; byte[] modulusData = new byte[256]; Array.Copy(publicKeyBytes, publicKeyBytes.Length – exponentData.Length, exponentData, 0, exponentData.Length); Array.Copy(publicKeyBytes, 9, modulusData, 0, modulusData.Length); // import the public key data (base […]