2012-04-23 21 views
0

DES暗号化で暗号化されたC#プログラムにEncyption Partがあります。それは単に "005"を暗号化します。私はこの部分をしたいが、RSA encryption.IとC#codes.Can誰もがDES暗号化からRSA暗号化への変換

/*********************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******************************/ 
+1

これはあまり意味がありません。 DESとRSAは全く異なる目的を持っています。 RSAは、非対称プロパティが必要な場合に使用します。共有キーを使って暗号化するのには使用しません。現代的なDESの交換を希望する場合は、AESを使用してください。 – CodesInChaos

+0

定数 'IV 'も役に立たず、あなたのスキームは認証に欠けています。 – CodesInChaos

+0

暗号化によって達成したいことを教えてください。より良い回答が得られるかもしれません。 –

答えて

0

これは、暗号化タスクの詳細です私に助けて使用する方法がわかりません。

とにかく、あなたは、DESACryptoServiceProviderをRSACryptoServiceProviderのために交換する必要があります。さらに、RSAはPKI暗号であり、DESは対称ブロック暗号であるため、適切なパラメータなどを作成する必要があります。したがって、達成するための目標の1つだったら、実際の暗号化も異なるキーを使用して行われます。

は最後に、すべての必要なコードは、私はあなたの応答から集めるものとは、あなたが実際にRSAを使用したくない、

[OK]を http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsacryptoserviceprovider.aspx

EDITで見つけることができます。ちょうど他の暗号、そうですか?

この場合、.NETのSystem.Security.Crytographyライブラリをソースとして使用することを前提として、4種類の対称暗号化(同じタイプの読み込み)アルゴリズムから選択できます。これらは次のとおりです。

彼らがそうちょうどそれらのいずれかを選択し、すべての非常によく似たインターフェースを持っている(私のアドバイスは、AESを選択することです)とコードを書き直してください。彼らは同じインターフェースを持っています(もし私がクイックルックから何かを見逃していなければ)。本当に必要なのは、すべてのDESの出現をAESに置き換えることだけです。それと同じくらい簡単です。

これが役に立ちます。

+0

ありがとうございました... しかし、私の問題は、私は暗号化についてあまり知らないと私は新入生です。実際に私は準備ができているプログラムを見つけたので、変更したいと思っています。コピーしたものにする。私はプログラムの他の部分を変更しましたが、私は暗号化をよく知らないのでこの部分については変更できませんでした。私はちょうどそれを変更したい!変更は私の唯一の目標です。そして私はちょうどそれを変更し、DES – ghazaal

+0

を除いて別の暗号化方法でそれを暗号化したいと思う。実際に私はMicrosoftのサイトもチェックした。しかし、私がそれを使うと、私のプログラムは多くのエラーに直面します。私は暗号化をよく知らないので、それらのエラーを修正することはできません。 – ghazaal

+0

ありがとうございます...はいあなたは正しいですか他のDES以外の暗号。あなたのガイドをありがとう。私はそれらをAESに置き換えましたが、AESのために "AesCryptoServiceProvider"の前に "using"を使用し、プログラムにいくつかのエラーがあった場合、それらの間にいくつかの違いがあると思うので動作しませんでした。私はTripleDESを使用しましたが、エラーはありませんでしたが、プログラムは動作しませんでした – ghazaal