Prolog对称加密
所以我对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
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).