Source file utils_encryption.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
open Base
let xor str1 str2 =
String.of_char_list
(List.map2_exn
~f:(fun chr1 chr2 -> Char.of_int_exn (Char.to_int chr1 lxor Char.to_int chr2))
(String.to_list str1)
(String.to_list str2))
;;
let decrypt_with_salt ~salted_cipher ~salt_length =
let salt = String.subo ~len:salt_length salted_cipher in
let encrypted_value = String.sub ~pos:salt_length ~len:salt_length salted_cipher in
xor salt encrypted_value
;;