Criptare e Decriptare Stringhe

 

 

Il tema della sicurezza è sempre stato molto affascinante. Riuscire ad inviare un messaggio "camuffato" a qualcuno che sia poi, tramite alcune operazioni, in grado di interpretarlo è ciò che viene identificato come crittografia.

 

Qui di seguito propongo un pezzo di codice che ho scovato in rete e ho leggermente modificato. Lo script esegue prima l'operazione di modifica di una stringa data in input e dopo l'operazione inversa. Questo il codice:

 

'**********************************************************

Dim temp, key  

'temp è la variabile che contiene la stringa da lavorare

'key è la chiave con la quale la stringa interagisce per essere modificata

'e ripristinata

'**********************************************************

 

temp="Now is the time for all good men To come To the aid of their fellow countrymen."
key = "huasHIYhkasdho1"

 

temp = EnDecrypt(temp,key, "ENCRYPT")
WScript.Echo temp
temp = EnDecrypt(temp,key, "DECRYPT")
WScript.Echo temp

 

'Unica funzione per Criptare e Decriptare la stringa data in input

'E' il cuore dello script 

Function EnDeCrypt(Str, key, strAction)
 Dim lenKey, KeyPos, LenStr, x, Newstr
 
 Newstr = "" 

 'Newstr sarà la stringa risultante dall'operazione


 lenKey = Len(key)

 'lunghezza chiave


 KeyPos = 1

 'posizione del carattere della chiave

 
 LenStr = Len(Str)
 'lunghezza della stringa da lavorare 

 


 Select Case strAction

 

 Case "ENCRYPT":
  For x = 1 To LenStr             
         Newstr = Newstr & chr(asc(Mid(str,x,1)) + Asc(Mid(key,KeyPos,1)))

         'analisi dell'operazione:

         ' - Mid(str, x, 1): funzione che ritorna il carattere in posizione x della

         '                       stringa in input

         ' - Mid(key, keyPos, 1): funzione che ritorna il carattere in posizione

         '                                KeyPos della chiave        

         ' Funzione asc: ritorna il numero ASCII di un carattere (es: A = 65)

         ' Funzione chr: trasforma in carattere un numero dato in Input (es: 65 = A)

         ' l'operazione effettua la somma di 2 numeri e trasforma il risultato

           ' in un carattere.


         KeyPos = keypos+1
         If KeyPos > lenKey Then KeyPos = 1

         'questa if è per far tornare il posizionamento al primo carattere della chiave


   Next  

 

 Case "DECRYPT":
  For x = 1 To LenStr   

         'l'azione di decrittazione effettua le operazioni speculari ma al contrario

         'infatti non somma ma sottrae
         Newstr = Newstr & chr(asc(Mid(str,x,1)) - Asc(Mid(key,KeyPos,1)))
         KeyPos = keypos+1
         If KeyPos > lenKey Then KeyPos = 1
  Next  

 

 End Select

 

 EnDeCrypt = Newstr

End Function

 

'**********************************************************

 

Pag: <<    <    >