2011-12-12 7 views
7

Sto usando C# 4.0 di Windows Application.I vogliono dare chiave di crittografia per proteggere il mio file usando System.Text.ASCIIEncoding.So, Ecco la mia chiave di crittografia è Saravanan e lunghezza della chiave di questo è 9.Esiste qualche restrizione della lunghezza della chiave passata alla codifica utilizzando ASCIIEncoding in .NET 4.0?

String enKey="SARAVANAN"; 
DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 
des.Key = ASCIIEncoding.ASCII.GetBytes(enKey); 

ha sollevato l'eccezione come "La chiave specificata non è una dimensione valida per questo algoritmo". Ma funziona bene solo alla lunghezza di 8. Quindi, vorrei sapere c'è qualche restrizione a questa lunghezza a causa di questa ASCII CODIFICA ..

Per favore guidi uscire da questo problema?

risposta

11

64 bit è l'unica dimensione della chiave valida per l'algoritmo di crittografia DES.

La codifica ASCII utilizza 8 bit per carattere, quindi 8 caratteri ASCII == 64 bit.

+0

Roy Dictus: Grazie per la risposta – Saravanan

6

Non ha niente a che fare con ASCIIEncoding. Ha a che fare con DESCryptoServiceProvider. Da the documentation:

Questo algoritmo supporta una lunghezza chiave di 64 bit.

In altre parole, la chiave passata deve essere di 64 bit o 8 byte. Come tu ottieni questi 8 byte dipende da te - ma la forma codificata in ASCII di una stringa di 9 lettere ASCII sarà di 9 byte (72 bit).

+0

: Grazie per la risposta ... – Saravanan

1

Se dai un'occhiata a MSDN puoi vedere This algorithm supports a key length of 64 bits. Quindi l'unica lunghezza valida per una chiave è di 8 caratteri.

+0

Fischermaen: Grazie per la risposta – Saravanan

Problemi correlati