Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Doppio ciclo for c#
martedì 02 febbraio 2010 - 23.01
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Triade
Profilo
| Newbie
3
messaggi | Data Invio:
mar 2 feb 2010 - 23:01
ciao a tutti ragazzi!!!
sto cercando di creare un programma in c# il quale deve essere in grado di criptare una stringa:vi spiego brevemente.
Data una stringa io devo fare in modo di cambiare ogni singola lettera con la sua lettera successiva ( per esempio: tutte le lettere A devono cambiare in lettera B e così via ) per poter poi visualizzare in una text il testo criptato.
Purtroppo sono iniziati i problemi.
Vi posto le righe di codice appena scritte:
string msgGrezzo = txtMexIniziale.Text.ToString();
char[] separatore ={ ' ' };
Array arr = msgGrezzo.Split(separatore);
for (int i = 0; i < arr.Length; i++)
{
}
Ho creato una variabile separatore che sarà lo spazio in modo da separare ogni parola dall'altra;ora però non so come creare il secondo ciclo dentro al primo per poter scandire ogni lettera per poter modificarla...
Sapete aiutarmi????
Grazie 1000 in anticipo!!!ciao ciao
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
mer 3 feb 2010 - 09:40
Ciao. Il metodo che voui usare tu per la sostituzione delle lettere dovrebbe prevedere una funzione in cui associ ad ogni lettera la sua successiva (in fase di cripting) e una funzione che faccia il contrario.
Per come la vedo io potresti fare in un altro modo. Ogni carattere corrisponde ad un certo 'numero'. potresti scorrere tutta la tua stringa, estrarre il numero associato al carattere ed aggiungerci +1 in fase di Cripting, mentre in fase di decripting applicherai -1.
Ti posto di seguito la funzione che puoi utilizzare per fare questo. La func restituisce una stringa quindi per chiamarla basta che usi this.textbox2.text = CriptString(this.textbox1.text, true);
La stessa funzione la usi anche per il Decript passando false come secondo parametro.
private string CriptString(string message, bool Cripting)
{
string res = "";
int charNumber = 0;
char[] component = message.ToCharArray();
foreach (char c in component)
{
charNumber = (int)c;
if (Cripting)
{
charNumber++;
}
else
{
charNumber--;
}
res = res + Char.ConvertFromUtf32(charNumber);
}
return res;
}
Cristian Barca
tonyexpo
Profilo
| Senior Member
229
messaggi | Data Invio:
mer 3 feb 2010 - 10:08
Ciao
altrimenti usa un sistema di crittazione standard di .NET
'DES
Dim des As New Security.Cryptography.DESCryptoServiceProvider
'usare des.IV per impostare il vettore di inizializzazione: : ricorda di salvarti questo valore - il metodo più semplice è salvarsi il primo che genera lui in random
'usare des.Key per impostare la password: ricorda di salvarti questo valore - il metodo più semplice è salvarsi il primo che genera lui in random
Dim arr As Byte()
'crittazione
Using temp As New IO.MemoryStream
Using cs As New Security.Cryptography.CryptoStream(temp, des.CreateEncryptor, Security.Cryptography.CryptoStreamMode.Write)
Using w As New IO.StreamWriter(cs)
w.WriteLine("Testo da crittare!!")
End Using
End Using
'array di bytes contenente il testo crittato
arr = temp.ToArray 'es: A?5@???K??5xf\|?L??v
'base64 dell'array
Dim b64 As String = Convert.ToBase64String(arr) 'es: Qcg1QImTHttL8wjsNQR4ZgFcfLFM4dB2 - questo è il testo che mostrerai a video
End Using
'decrittazione
Using temp As New IO.MemoryStream(arr)
Using cs As New Security.Cryptography.CryptoStream(temp, des.CreateDecryptor, Security.Cryptography.CryptoStreamMode.Read)
Using r As New IO.StreamReader(cs)
'testo decrittato
Dim text As String = r.ReadLine 'es: Testo da crittare!!
End Using
End Using
End Using
ciao
Antonio Esposito
MCTS, MCP
http://blogs.dotnethell.it/espositos
Triade
Profilo
| Newbie
3
messaggi | Data Invio:
mer 3 feb 2010 - 16:04
Grazie 1000 a tutti per l'interessamento e per la risposta tempestiva!!!
Grazie a voi ho risolto il problema....
grazie davvero...ciao a tutti!!!
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
mer 3 feb 2010 - 16:44
.....Come ripetuto più volte in altri thread.... se hai risolto il tuo problema non lasciare aperto il thread inutilmente. Altri utenti vedendo che non è concluso potrebbero aprirlo e iniziare a leggere la conversazione ed arrivare dopo N messaggi a leggere "grazie ho risolto"....
Cristian Barca
Triade
Profilo
| Newbie
3
messaggi | Data Invio:
ven 5 feb 2010 - 00:56
fatto
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !