2012-04-23 3 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

이것은 암호화 작업의 더 나에게 도움을 사용하는 방법을 모르겠어요.

어쨌든, 당신이해야 할 일은 RSACryptoServiceProvider를 위해 DESCryptoServiceProvider를 교체하는 것입니다. 또한 RSA는 PKI 암호이고 DES는 대칭 블록 암호이므로 적절한 매개 변수를 작성해야합니다. 실제 암호화는 달성하기위한 목표 중 하나라면 다른 키를 사용하여 수행됩니다.

는 마지막으로, 필요한 모든 코드는 내가 답변에서 수집 한 것과, 당신은 실제로 RSA를 사용하지 않으려는, http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsacryptoserviceprovider.aspx

편집

확인에서 확인할 수 있습니다. 그냥 다른 암호 요?

이 경우 .NET에서 System.Security.Crytography 라이브러리를 원본으로 유지하려는 경우 4 가지 대칭 암호화 (동일한 유형의 읽기) 알고리즘 중에서 선택할 수 있습니다. 이들은 다음과 같습니다

그들은 그래서 그냥 그들 중 하나를 선택, 모두 매우 유사한 인터페이스를 가지고 (내 조언은 AES를 선택하는 것입니다) 및 코드를 다시 작성하십시오. 그것들은 똑같은 인터페이스를 가지고있다. (만약 내가 빠뜨린 모습을 놓치지 않았다면) 정말로해야 할 일은 모든 DES를 AES로 바꾸는 것이다. 저것과 같이 쉬운.

희망이 도움이됩니다.

+0

대단히 고마워 ... 하지만 내 문제는 암호화에 대해 잘 모르고 신입생입니다. 실제로 준비된 프로그램을 발견 했으므로 변경하고 싶었습니다. 복사 한 것. 프로그램의 다른 부분을 변경했지만이 부분에 대해서는 암호화를 잘 모르기 때문에 변경할 수 없습니다. 나는 그것을 바꾸고 싶다! 변화는 나의 유일한 목표입니다.그리고 난 단지 그것을 변경하고 다른 암호화 방법을 사용하여 그것을 암호화하고 싶습니다 DES – ghazaal

+0

사실 나는 마이크로 소프트 사이트를 너무 확인했습니다. 하지만 그 방법을 사용할 때 내 프로그램은 많은 오류를 겪게 될 것이고 암호화를 잘 모르기 때문에 나는 그 오류를 고칠 수 없다. – ghazaal

+0

고맙다 ... 네가 맞아. 나는 다른 어떤 것 DES를 제외한 암호. 귀하의 가이드를 가져 주셔서 감사합니다. 나는 그것들을 AES로 바꿨지 만, AES의 경우 "AesCryptoServiceProvider"전에 "using"을 사용해야하고 프로그램에 약간의 오류가 있었기 때문에 AES에 약간의 차이가 있다고 생각하기 때문에 작동하지 않았다. TripleDES를 사용했지만 오류가 없었지만 프로그램이 작동하지 않았습니다 – ghazaal

관련 문제