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
'**********************************************************