Tag: rsa

UWP RSA AsymmetricKeyAlgorithmProvider导入公钥

当我尝试在UWP中使用Windows.Security.Cryptography.Core时,我总是从AsymmetricKeyAlgorithmProvider导入公钥时出错。 我尝试了所有组合而没有成功。 我总是检查输入字符串是否为UTF8模式。 try { var bytes = Encoding.UTF8.GetBytes(publicKeyString); publicKeyString = Encoding.UTF8.GetString(bytes); Debug.WriteLine(publicKeyString); IBuffer keyBuffer = CryptographicBuffer.DecodeFromBase64String(publicKeyString); byte[] bytes = Convert.FromBase64String(publicKeyString); string hex = “”; Debug.WriteLine(hex); AsymmetricKeyAlgorithmProvider provider = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1); CryptographicKey publicKey = provider.ImportPublicKey(CryptographicBuffer.DecodeFromHexString(hex), CryptographicPublicKeyBlobType.BCryptPublicKey); IBuffer dataBuffer = CryptographicBuffer.CreateFromByteArray(Encoding.UTF8.GetBytes(plainText)); var encryptedData = CryptographicEngine.Encrypt(publicKey, dataBuffer, null); return CryptographicBuffer.EncodeToBase64String(encryptedData); } catch (Exception e) { throw; return “Error […]

没有填充C#的RSA加密

我会设置场景, 我需要使用512位密钥计算给定字节集上的RSA加密。 这可以通过RSACryptoServiceProvider类轻松实现,但是我需要在计算RSA加密之前预先计算加密的自定义填充。 此自定义填充不符合RSACryptoServiceProvider的Encrypt方法中提供的PKCS#1 v1.5或v2。 有没有替代C#类可以用来计算RSA加密而不添加自己的填充? 我目前正在考虑将OpenSSL.Net作为替代方案,但还有其他更好的/ 任何帮助都会得到满足。 谢谢。

要解密的数据超过36个字节的模数的最大值

我正在努力使密码安全,但我使用RSA的方式有问题。 inheritance我的代码: private void testencodedecode() { string mehdi = “mehdi”; var enc = encodePass(mehdi); var dec = decodePass(enc); } private RSAParameters rsaKey() { var setting = context.Settings.First(s => s.ID == 1); byte[] pwd = Encoding.ASCII.GetBytes(setting.PWDKEY); byte[] expo = {1,0,1}; var key = new System.Security.Cryptography.RSAParameters(); key.Exponent = expo; key.Modulus = pwd; return key; } private string […]

如何从PEM文件中使用rsa解密

我正在使用以下c#代码使用带有PEM文件的rsa进行加密和解密: public string encrypt(string elementToEncrypt, string pathPrivateKey) { string pem = System.IO.File.ReadAllText(pathPrivateKey); byte[] Buffer = getBytesFromPEMFile(pem, “PUBLIC KEY”); System.Security.Cryptography.RSACryptoServiceProvider rsa = new System.Security.Cryptography.RSACryptoServiceProvider(); System.Security.Cryptography.RSAParameters rsaParam = rsa.ExportParameters(false); rsaParam.Modulus = Buffer; rsa.ImportParameters(rsaParam); byte[] encryptedMessageByte = rsa.Encrypt(Convert.FromBase64String(elementToEncrypt),false); return Convert.ToBase64String(encryptedMessageByte); } public string decrypt(string elementToDesencrypt, string pathPublicKey) { string pem = System.IO.File.ReadAllText(pathPublicKey); byte[] Buffer = getBytesFromPEMFile(pem, “RSA PRIVATE […]

.NET Core 2.0 RSA PlatformNotSupportedException

我试图使用此代码生成公钥和私钥,我在Windows 10上使用.NET Core 2 到目前为止,我没有成功运行此代码,它编译得很好,但是当我到达rsa.ToXmlString行时,它会丢弃PlatformNotSupportedException,当我在堆栈溢出的另一个答案中读到时,解决方案是使用System.Security.Cryptography.Algorithms和它们显示了我在下面使用的几乎精确的代码。 using (RSA rsa = RSA.Create()) { rsa.KeySize = 1024; privateKey = rsa.ToXmlString(true); publicKey = rsa.ToXmlString(false); } 错误: 如此处所示它确实出现在他们的API浏览器中,因此必须得到支持,对吧? 有没有人有类似的问题? 或者有没有人解决这个问题? 我必须使用.NET Core,所以不建议使用.NET 4.6

无法解密RSA加密密钥

长话短说,我正在使用DES而我正在使用RSA加密密码进行密钥交换,密码不超过16个字符问题是当我加密密钥时,加密的大小对我来说太大了解密这里是我的rsa加密和解密代码: 加密: – 我一直在尝试将localpwd作为“asd” byte[] plaintext = utf8.GetBytes(localpwd); byte[] ciphertext = rsaservice.Encrypt(plaintext, false); string cipherresult = Convert.ToBase64String(ciphertext); 然后我打印文本框上的加密密钥并尝试解密 byte[] ciphertext = utf8.GetBytes(filetest.Text); byte[] plain = rsaservice.Decrypt(ciphertext, true); string plaintext = utf8.GetString(plain); 我得到“要解密的数据超过这个256字节模数的最大值”。 我尝试增加密钥大小,以便能够加密和解密更大的密钥大小,但增加密钥只会增加加密数据的大小导致相同的错误,请帮助!

.NET中的RSA密钥指数是否有限制?

使用C#我无法导入指数为{1,0,0,0,15}的公共RSA密钥:有一个例外: System.Security.Cryptography.CryptographicException was caught HResult=-2146893819 Message=Bad Data. Source=mscorlib StackTrace: at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) at System.Security.Cryptography.Utils._ImportKey(SafeProvHandle hCSP, Int32 keyNumber, CspProviderFlags flags, Object cspObject, SafeKeyHandle& hKey) at System.Security.Cryptography.RSACryptoServiceProvider.ImportParameters(RSAParameters parameters) at TestRSA.Form1.buttonTest_Click(Object sender, EventArgs e) in c:\Users\Thomas\Documents\Visual Studio 2010\Projects\Modules\TestRSA\Form1.cs:line 32 二手代码: RSACryptoServiceProvider rsaAlg = new RSACryptoServiceProvider(); RSAParameters key = new RSAParameters(); key.Exponent = new byte[5] { 1, 0, 0, […]

如何使用公钥加密技术加密字符串

我正在尝试实现自己的RSA加密引擎。 鉴于这些RSA算法值: p = 61. // A prime number. q = 53. // Also a prime number. n = 3233. // p * q. totient = 3120. // (p – 1) * (q – 1) e = 991. // Co-prime to the totient (co-prime to 3120). d = 1231. // d * e = 1219921, […]

RSA Exception {“Bad Length。\ r \ n”} Noi Matter我的密钥大小是多少

我在行上收到运行时错误{“Bad Length。\ r \ n”}: return rsa.Encrypt(bytes, true); 这是在function: private static byte[] Encrypt(byte[] bytes) { using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { string test = Properties.Settings.Default.PublicKeyXml; rsa.FromXmlString(“mfXS3Na0XfkjhpjS3sL5XcC9o+j6KXi1LB9yBc4SsTMo1Yk/pFsXr74gNj4aRxKB45+hZH/lSo933NCDEh25du1iMsaH4TGQNkCqi+HDLQjOrdXMMNmaQrLXGlY7UCCfFUnkEUxX51AlyVLzqLycaAt6zm5ljnDXojMC7JoCrTM=AQAB”); return rsa.Encrypt(bytes, true); } } 我使用的密钥大小为8192: CspParameters cspParams = new CspParameters(); cspParams.KeyContainerName = “XML_ENC_RSA_KEY”; RSACryptoServiceProvider rsaKey = new RSACryptoServiceProvider(8192, cspParams); string keyXml = rsaKey.ToXmlString(true); XML文件很小。 根据运行时的长度,它只有225个字节: string fileName […]

如何在c#中填写RSAParameters值

我在我的项目中使用下面的代码进行加密,一切正常。 RSACryptoServiceProvider x_alg = new RSACryptoServiceProvider( ); // export only the public key RSAParameters x_public_params = x_alg.ExportParameters(false); // export the private key RSAParameters x_private_params = x_alg.ExportParameters(true); 现在客户端更改了要求,他希望将所有RSAParameters值存储到配置文件中,并提供以下详细信息用于演示 00000000000000000000000000000000000000000000000000000000000019C5 00000000000000000000000000000061 00000000000000000000000000000065 000DCD 0000000000000000000000000000003B 0000000000000000000000000000000000000000000000000000000000002C95 00000000000000000000000000000065 00000000000000000000000000000071 0123456789ABCDEF111111111111111125FE2222222222222233333333334444 0000000000000000000000000000000000000000000000000000000000000000 现在,问题是当我导入RSAParameters值时,我收到了错误的数据exception