Vicar (Normal User)
Pro
Messaggi: 96
Iscritto: 25/02/2010
|
Salve,
io ho un file .eml, lo apro tramite streamReader ma poi il contenuto diventa criptato, lo stesso fa se lo apro con il blocco note.. come faccio a far si che quando lo apro ci sia il messaggio normale?
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
Se lo vedi tutto incomprensibile, facile che sia in partenza un file criptato.
Se dopo l'intestazione dell'email vedi una seconda parte composta da caratteri strani, facile che il messaggio abbia un allegato e quello che vedi è il file binario codificato, se non vado errato, in base64
|
|
Vicar (Normal User)
Pro
Messaggi: 96
Iscritto: 25/02/2010
|
Si è un base64, devo usare la libreria system.convert?
EDIT:
Non capisco l'uso dei byte nel metodo
system.convert.FromBase64toString(Array Byte)
Perchè?
Ultima modifica effettuata da Vicar il 03/07/2010 alle 12:56 |
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
Io uso questa routine dove forse è più facile capire l'uso dei byte.
Codice sorgente - presumibilmente VB.NET |
Dim bt64 As Byte() = System.Convert.FromBase64String(StringaCodificata) Dim sw As New IO.FileStream(NomeFileDecodificato, IO.FileMode.Create) sw.Write(bt64, 0, bt64.Length) sw.Close()
|
|
|
Vicar (Normal User)
Pro
Messaggi: 96
Iscritto: 25/02/2010
|
Ma non posso mettere tramite un for each i byte in una stringa?
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
Non ti capisco.
I byte del file sono stati codificati proprio per metterli in una stringa. Quando li decodifichi l'unica è rimettterli in un file.
|
|
Vicar (Normal User)
Pro
Messaggi: 96
Iscritto: 25/02/2010
|
Allora,
Codice sorgente - presumibilmente VB.NET |
Dim bt64 As Byte() = System.Convert.FromBase64String(StringaCodificata) Dim sw As New IO.FileStream(NomeFileDecodificato, IO.FileMode.Create) sw.Write(bt64, 0, bt64.Length) sw.Close()
|
Facendo cosi metti tutto il bite nel file..
Io invece prelevo il contenuto del file codificato in base 64, dopodichè devo decodificarlo e mettere la decodifica in una stringa, però quello che non capisco è:
Dopo la decodifica io ho i byte non una string..come faccio?
Ultima modifica effettuata da Vicar il 04/07/2010 alle 0:27 |
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
Continuo a non capire qual'è il tuo problema.
Quì è indicato a cosa serve la decodifica:
http://msdn.microsoft.com/en-us/library/system.convert.fro ...
Comunque tu decodifichi il contenuto del file codificato in base 64 con l'istruzione:
Codice sorgente - presumibilmente C# / VB.NET |
Dim bt64 As Byte() = System.Convert.FromBase64String(StringaCodificata)
|
così hai un array di numeri che variano da 0 a 255
Ora, scorrendo l'array bt64, se vuoi una stringa composta dai numeri usa la prima riga, se vuoi una stringa di caratteri ascii usa la seconda.
Codice sorgente - presumibilmente VB.NET |
For i As Int32 = 0 To bt64.Length - 1 TuaStringa &= Str(bt64(i)) TuaStringa &= Chr(bt64(i)) Next
|
|
|
Vicar (Normal User)
Pro
Messaggi: 96
Iscritto: 25/02/2010
|
Codice sorgente - presumibilmente Plain Text |
TuaStringa &= Chr(bt64(i))
|
Con questo ho una stringa contenente il testo decodificato?
|
|