This script is a sample encryption/decryption algorithm. The algorithm uses a encryption key and a random seed. If you change the seed or the key, you will get a different encrypted string. You need to use the same key and seed for encryption and decryption.
‘******************************************************************************
‘** Script: encrypt.vbs
‘** Version: 1.0
‘** Created: 20-1-2009 22:28
‘** Author: Adriaan Westra
‘** E-mail:
‘**
‘** Purpose / Comments:
‘** Demonstrate a simple encryption algorithm.
‘**
‘** Doel / Commentaar:
‘** Demoscript voor een simpel encryptie algoritme.
‘**
‘**
‘** Changelog :
‘** date / time :
‘** 20-1-2009 22:28 : Initial version
‘**
‘******************************************************************************
‘******************************************************************************
‘** Constants for opening files
‘** Constanten voor het openen van files
Const ForWriting = 2
Const ForAppending = 8
Dim strEncrypted
Dim strKey
Dim intSeed
‘******************************************************************************
‘** This is the key that will be use for en/decrypting the text
strKey = “This is a very long key”
‘******************************************************************************
‘** Tis is the text that is going to be encrypted
strEncrypt = “This text will be encrypted.”
‘******************************************************************************
‘** This is the seed that is used for randpmizing the en/decryption
intSeed = 6
‘******************************************************************************
‘** Call the Encrypt function to encrypt the text
strEncryptedText = Encrypt(strEncrypt, strKey, intSeed)
‘******************************************************************************
‘** Store the encrypted text in a file for later use
Set objFSO = CreateObject(“Scripting.FileSystemObject”)
strFile = “encrypted.txt”
Set objTxTFile = objFSO.OpenTextFile(strFile, ForWriting, True)
objTxTFile.Write strEncryptedText
objTxTFile.Close
‘******************************************************************************
‘** Get the encrypted text from file
Set objTxtFile = objFSO.OpenTextFile(strFile)
If Not objTxtFile.AtEndOfStream Then
strDecrypt = objTxtFile.ReadAll
End If
objTxTFile.Close
‘******************************************************************************
‘** Output the encrypted text to screen
wscript.echo “Encrypted text : ” & strDecrypt
‘******************************************************************************
‘** Output the decrypted text to screen
wscript.echo “Decrypted text : ” & Decrypt(strDecrypt, strKey, intSeed)
wscript.quit
‘******************************************************************************
‘** Function: String2Asc
‘** Version: 1.0
‘** Created: 20-1-2009 22:35
‘** Author: Adriaan Westra
‘** E-mail:
‘**
‘** Purpose / Comments:
‘**
‘** Transform a string in to an array with ascii values
‘**
‘** Change Log :
‘**
‘** 20-1-2009 22:36 : Initial Version
‘**
‘** Arguments :
‘**
‘** strIn : string to be converted
‘**
‘** Returns :
‘**
‘** an array with ascii values
‘**
‘******************************************************************************
Function String2Asc( strIn)
arrResult = Array()
ReDim arrResult( CInt( Len( strIn ) ) )
For intI = 0 to Len(strIn) – 1
arrResult( intI ) = Asc( Mid( strIn,intI + 1 ,1 ) )
Next
String2Asc = arrResult
End Function
‘******************************************************************************
‘** Function: Encrypt
‘** Version: 1.0
‘** Created: 20-1-2009 22:35
‘** Author: Adriaan Westra
‘** E-mail:
‘**
‘** Purpose / Comments:
‘**
‘** Encrypt a string in to an encrypted string
‘**
‘** Change Log :
‘**
‘** 20-1-2009 22:36 : Initial Version
‘**
‘** Arguments :
‘**
‘** strEncrypt : string to be encrypted
‘** strKey : string used as encryption key
‘** intSeed : integer to make the encryption random
‘**
‘** Returns :
‘**
‘** an encrypted string
‘**
‘******************************************************************************
Function Encrypt( strEncrypt, strKey, intSeed)
Rnd(-1)
Randomize intSeed
intRnd = Int( ( Len(strKey) – 1 + 1 ) * Rnd + 1 )
arrEncrypt = String2Asc(strEncrypt)
arrKey = String2Asc(strKey)
For intI = 0 to UBound( arrEncrypt ) – 1
intPointer = intI + intRnd
If intPointer > UBound(arrKey) Then
intPointer = intPointer – ((UBound(arrKey) + 1 ) * Int(intPointer / (UBound(arrKey) + 1)))
End If
intCalc = arrEncrypt(intI) + arrKey(intPointer)
If intCalc > 256 Then
intCalc = intCalc – 256
End If
strEncrypted = strEncrypted & Chr(intCalc)
Next
encrypt = strEncrypted
End Function
‘******************************************************************************
‘** Function: Decrypt
‘** Version: 1.0
‘** Created: 20-1-2009 22:35
‘** Author: Adriaan Westra
‘** E-mail:
‘**
‘** Purpose / Comments:
‘**
‘** Decrypt an encrypted string
‘**
‘** Change Log :
‘**
‘** 20-1-2009 22:36 : Initial Version
‘**
‘** Arguments :
‘**
‘** strDecrypt : string to be Decrypted
‘** strKey : string used as encryption key
‘** intSeed : integer used to make the encryption random
‘**
‘** Returns :
‘**
‘** A Decrypted string
‘**
‘******************************************************************************
Function Decrypt( strDecrypt, strKey, intSeed)
Rnd(-1)
Randomize intSeed
intRnd = Int( ( Len(strKey) – 1 + 1 ) * Rnd + 1 )
arrDecrypt = String2Asc(strDecrypt)
arrKey = String2Asc(strKey)
For intI = 0 to UBound( arrDecrypt ) – 1
intPointer = intI + intRnd
If intPointer > UBound(arrKey) Then
intPointer = intPointer – ((UBound(arrKey) + 1 ) * Int(intPointer / (UBound(arrKey) + 1)))
End If
intCalc = arrDecrypt(intI) – arrKey(intPointer)
If intCalc < 0 Then
intCalc = intCalc + 256
End If
strDecrypted = strDecrypted & Chr(intCalc)
Next
Decrypt = strDecrypted
End Function