4
移位XORyption
编写一个程序或函数(或一组程序/函数),以给定以下规范来加密和解密数据: 加密 通过将每个字节彼此异或来对输入进行XOR哈希计算。 通过此哈希对输入的每个字节进行XOR。 将结果左移四位。 用XOR哈希的前四位填充左侧。 在XOR哈希的最后四位填充右侧。 例 给定的输入:"G0lf"(0x47306C66) 计算XOR哈希: 0x47 ^ 0x30 ^ 0x6C ^ 0x66 = 0x7D 通过哈希对每个字节进行XOR: 0x3A4D111B 预期结果(后移和垫): ()"s¤Ñ\x11½"0x73A4D111BD 规则 只要输入/输出是实际的字节,您的程序/函数就可以在您选择的高尔夫语言(字符串,字节数组等)中有意义的任何类型的输入/输出。例如,您可能不输出十六进制字符串。 加密和解密可以分为单独的程序(分数将是它们的总大小)或单个程序。单个方法可以采用参数进行加密还是解密。 预计加密输入至少为1个字节。 解密输入至少应为2个字节。 不可打印字节不需要在输出中转义。