C# 将DES加密转换为RSA加密

C# 将DES加密转换为RSA加密,c#,cryptography,rsa,des,C#,Cryptography,Rsa,Des,我的C程序中有一个加密部分,它是用DES加密的。它只是加密。我想要这部分,但要使用RSA加密。我不知道如何使用C代码。有人能帮我吗 /*********************Message Encryption******************************/ string smsg = "005"; string venc; DESCryptoServiceProvider iDESCryptoServiceProvider = new DESCryptoServiceProvi

我的C程序中有一个加密部分,它是用DES加密的。它只是加密。我想要这部分,但要使用RSA加密。我不知道如何使用C代码。有人能帮我吗

/*********************Message Encryption******************************/
string smsg = "005";
string venc;
DESCryptoServiceProvider iDESCryptoServiceProvider = new DESCryptoServiceProvider();
System.Text.Encoding iEncoding = new System.Text.UTF8Encoding();
byte[] vkey = iEncoding.GetBytes("12345678");
byte[] viv = { 1, 2, 3, 4, 5, 6, 7, 8 };
ICryptoTransform iICryptoTransform = iDESCryptoServiceProvider.CreateEncryptor(vkey, viv);
byte[] vmsg = iEncoding.GetBytes(smsg);
byte[] benc = iICryptoTransform.TransformFinalBlock(vmsg, 0, vmsg.Length);
venc = System.Convert.ToBase64String(benc);
/****************Message Encryption******************************/

这更像是一项加密任务

无论如何,您需要做的是将DESCryptoServiceProvider交换为RSACryptoServiceProvider。此外,由于RSA是PKI密码,而DES是对称分组密码,因此需要创建适当的参数等等。因此,如果这是您要实现的目标之一,那么实际的加密也将使用不同的密钥来完成

最后,所有必要的代码都可以在

编辑

好的,从我从你们的回答中收集到的信息来看,你们实际上并不想使用RSA。只是其他密码,对吗

在这种情况下,如果您想保留.NET的System.Security.Crytography库作为源代码,那么您可以从4种对称加密读取相同类型的算法中进行选择。这些是:

它们都有非常相似的接口,所以只要选择其中一个,我的建议是选择AES并重新编写代码。如果我没有错过快速查看中的某些内容,它们具有相同的接口,因此您真正需要做的就是用AES替换所有出现的DES。就这么简单


希望这有帮助。

这没有多大意义。DES和RSA有完全不同的用途。如果需要RSA的非对称属性,可以使用它。您不能使用它来使用共享密钥进行加密。如果你想要一个现代的DES替代品,请使用AES。常量IV也没用,而且你的方案缺少身份验证。也许你想告诉我们你想通过加密实现什么,你可能会得到更好的答案。非常感谢。。。但我的问题是,我对加密知之甚少,而且我是一名新生。事实上,我已经找到了一个现成的程序,我想更改它,因为我不想让它被复制。我已经更改了程序的其他部分,但是关于这部分,因为我不太懂加密,所以无法更改它。我只想改变它!改变是我唯一的目标。我只想改变它,用另一种加密方法加密,除了DES@CodeInChaos虽然您所说的是正确的,但RSA可以用于加密。诚然,许多属性与对称密码有很大的不同,但最终还是得到了有效的密文。非常感谢。。。但我的问题是,我对加密知之甚少,而且我是一名新生。事实上,我已经找到了一个现成的程序,我想更改它,因为我不想让它被复制。我已经更改了程序的其他部分,但是关于这部分,因为我不太懂加密,所以无法更改它。我只想改变它!改变是我唯一的目标。我只想更改它,并用另一种加密方法对它进行加密,但实际上我也检查了Microsoft站点。但是,当我使用它的方法时,我的程序将面临许多错误,因为我不太懂加密,所以我无法修复这些错误非常感谢…是的,你是对的,我只想使用除DES之外的任何其他密码。谢谢你的指导。我用AES替换了它们,但它不起作用,因为我认为它们之间存在一些差异,对于AES,我们应该在AESCryptServiceProvider之前使用,并且程序中存在一些错误。我使用了TripleDES,它没有任何错误,但程序不工作。我能问另一个问题吗?我想知道三重DES比DES的优势有什么优势吗?嗯,基本上,在蛮力攻击方面,它比DES好一点。这主要取决于键控选项。看见http://en.wikipedia.org/wiki/Triple_DES 对于一些简单的概述。