0
클라이언트에서 서버로 파일을 안전하게 보내고 암호화하도록 클라이언트와 서버를 만들려고합니다. 먼저 RSA를 사용하여 양측 (클라이언트와 서버)간에 DES 키를 보냅니다. 나는 RSA 공개를 사용하여 암호화 된 DES 키를 서버로 전송하고 해독했다. 그런 다음 파일 이름 길이, 파일 이름 및 데이터 (암호화 된)를 서버로 전송 될 바이트 배열에 추가했습니다. DES를 사용하여 파일을 해독하는 동안 잘못된 데이터 예외가 수신되었으므로 파일이 잘못 전송되거나 DES 키가 클라이언트에서 서버로 잘못 전송되었다고 생각했습니다. 또한 파일을 원본에서 해독 할 수 있습니다.암호 해독 중에 잘못된 데이터 오류가 발생했습니다.
byte[] clientData = new byte[1024 * 5000];
int receivedBytesLen = s.Receive(clientData);
byte[] b = clientData;
int fileNameLen = BitConverter.ToInt32(clientData, 0);
fileName = Encoding.ASCII.GetString(clientData, 4, fileNameLen);
byte[] l = Encoding.ASCII.GetBytes(fileName);
Console.WriteLine("Client:{0} connected & File {1} started received.", s.RemoteEndPoint, fileName);
Console.WriteLine("buffer size : ", b.Length);
Console.WriteLine("index : ", 4 + fileNameLen);
string temp = System.Text.Encoding.UTF8.GetString(b, 3 + fileNameLen, receivedBytesLen);
fileBytes = System.Text.Encoding.UTF8.GetBytes(temp);
Console.WriteLine("rec file");
}
catch (Exception exx)
{
Console.WriteLine(exx.ToString());
Console.Read();
}
//decrypt
byte[] decryptedFile = null;
try
{
decryptedFile = DESdecrypt(fileBytes);
}
catch(Exception exx)
{
Console.WriteLine(exx.ToString());
Console.Read();
}
가능성이/관련 사용자 : http://stackoverflow.com/questions/10362409/cannot-decrypt-rsa-encrypted-key – CodesInChaos
처음으로 동일한 사용자가 아닙니다. 둘째 문제는 내가받은 파일에서 1 잘못된 바이트를 받고 해결됩니다. 예를 들어 (4-1000)을 사용하고 암호화 된 데이터는 (5-1001) 블록에서 데이터를 가져 오는 잘못된 방법입니다. – user1362274