Tech Tip: Encryption using XOR Bitwise
PRODUCT: 4D | VERSION: 13.3 | PLATFORM: Mac & Win
Published On: December 16, 2013
Here is a utility method to encrypt and decrypt a string using XOR bitwise (in Red). Please note that the input string needs to be the same length with the key.
Below is an example of how the method encryptDecryptXORString can encrypt a string:
Result of the encrypted string: "|(\fco"
Note: The text displayed can be unreadable but it is accounted for in the text variable.
With the same method, an encrypted string can be decrypted:
Result of the decrypted string returns the original input string: "4D_PASS"
// Method: encryptDecryptXORString // Description: // The method takes in a string to encrypt/decrypt and a string for the Key. // Each character of the string to encrypt/decrypt will be XOR bitwise with each // character of the Key. The method serves as a dual functionality for encrypting and // decrypting a string with a given Key. // // Parameters: // $1 (Text) - String for encrypt/decrypt // $2 (Text) - Key to encrypt/decrypt // $0 (Text) - Output string of encrypt/encrypt // ---------------------------------------------------- C_TEXT($0;$outString) C_TEXT($1;$inString;$2;$keyString) C_TEXT($char1;$char2) C_LONGINT($i) $inString:=$1 $keyString:=$2 //Encrypting/decrypting the data using XOR For ($i;1;Length($inString)) $char1:=Substring($inString;$i;1)  $char2:=Substring($keyString;$i;1) //XOR bitwise character by character  $outString:=$outString+Char(Character code($char1) ^| Character code($char2)) End for $0:=$outString |
Below is an example of how the method encryptDecryptXORString can encrypt a string:
C_TEXT($data_str;$key_str;$encrypted_str;$decrypted_str) $data_str:="4D_PASS" //String for encrypt/decrypt $key_str:="78WxM0<" //Key to encrypt/decrypt $encrypted_str:=encryptDecryptXORString($data_str;$key_str) |
Result of the encrypted string: "|(\fco"
Note: The text displayed can be unreadable but it is accounted for in the text variable.
With the same method, an encrypted string can be decrypted:
$decrypted_str:=encryptDecryptXORString($encrypted_str;$key_str) |
Result of the decrypted string returns the original input string: "4D_PASS"