object XOREncryption {
def xorEncryptDecrypt(input: String, key: String): String = {
input.zipWithIndex.map { case (char, i) =>
val keyChar = key(i % key.length)
(char ^ keyChar).toChar
}.mkString
}
def main(args: Array[String]): Unit = {
val originalText = "May the Force be with you."
val key = "Obelus" // String key for XOR operation
// Encrypt the text
val encryptedText = xorEncryptDecrypt(originalText, key)
println(s"Encrypted Text: $encryptedText")
// Decrypt the text (same function)
val decryptedText = xorEncryptDecrypt(encryptedText, key)
println(s"Decrypted Text: $decryptedText")
}
}
/*
run:
Encrypted Text: L *B#*B U&L:L
Decrypted Text: May the Force be with you.
*/