Prolog对称加密

Prolog对称加密,prolog,Prolog,所以我对prolog是新手。我需要创建一个谓词xor(+Text,+Key,-Cipher)。我可以假设+Text和+Key具有相同的长度+文本包含0和1的列表,+键也是如此。我需要对列表+Text和+Key的每个元素执行异或运算符,并将输出写入-Cipher列表 xor(+Plaintext,+Key,-Cipher) :- / ** TODO **/ xor_check(0,0,0). xor_check(0,1,1). xor_check(1,0,1). xor_check(1,1,0

所以我对prolog是新手。我需要创建一个谓词
xor(+Text,+Key,-Cipher)。
我可以假设
+Text
+Key
具有相同的长度<代码>+文本包含0和1的列表,
+键
也是如此。我需要对列表
+Text
+Key
的每个元素执行异或运算符,并将输出写入
-Cipher
列表

xor(+Plaintext,+Key,-Cipher) :-
 / ** TODO **/

xor_check(0,0,0).
xor_check(0,1,1).
xor_check(1,0,1).
xor_check(1,1,0).
我对所有可能的结果进行了异或检查,但不确定如何将列表中的元素传递给它。

您可以使用

由于假定明文和密钥具有相同的长度,您可以按如下方式处理它:

xor([], [], []).
xor([P|Plaintext], [K|Key], [C|Cipher]) :-
    xor_check(P, K, C),
    xor(Plaintext, Key, Cipher).