用1~26的二进制值对大写英文字母A~Z进行编码,编码如下表所示:
A | 00001 | B | 00010 | C | 00011 | D | 00100 | E | 00101 | F | 00110 | G | 00111 |
H | 01000 | I | 01001 | J | 01010 | K | 01011 | L | 01100 | M | 01101 | N | 01110 |
O | 01111 | P | 10000 | Q | 10001 | R | 10010 | S | 10011 | T | 10100 | U | 10101 |
V | 10110 | W | 10111 | X | 11000 | Y | 11001 | Z | 11010 | | | | |
小明使用该编码对由大写字母组成的明文字符串进行加密,加密算法如下:
l依次将明文中每个字符转换为其对应的二进制编码;
l依次将密钥中每个字符转换为其对应的二进制编码;
l依次取出密钥的每个二进制位与原文的二进制位进行异或运算(若密钥长度不够,则循环重复使用),得到的结果即为密文编码;
l二进制位异或运算原则:11=0,00=0,10=1,01=1
例如,明文:HELLO,密钥:ZHE,则按上述方式进行加密:
明文字符 | H | E | L | L | O |
密钥字符 | Z | H | E | Z | H |
明文编码 | 01000 | 00101 | 01100 | 01100 | 01111 |
密钥编码 | 11010 | 01000 | 00101 | 11010 | 01000 |
密文编码 | 10010 | 01101 | 01001 | 10110 | 00111 |