①将明文字符串分成3个字符一组,对每组字符进行②③处理,剩余不足3个的字符不做处理。
②随机产生由26个不重复的小写英文字母组成的密文串,将明文中的每组字符分别替换为密文串中对应的字符,若密文串如表1所示,则明文“abcdefghijkl”替换为“jpgntkwmaery”。
小写字母 |
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
密文串 |
j |
p |
g |
n |
t |
k |
w |
m |
a |
e |
r |
y |
l |
d |
c |
q |
f |
i |
x |
u |
h |
z |
b |
o |
v |
s |
表 1
③输入一串数字密钥(由1~9数字组成),密钥中每个数字依次为每组字符向右旋转次数,若密钥长度不足,则重复使用密钥,数字与对应旋转次数见表2。例如,数字密钥为“45”,则将第1组字符向右旋转1次,如“jpg”>“gjp”,将第2组字符向右旋转2次,如“ntk”>“knt”>“tkn”,第3组字符向右旋转1次,第4组字符向右旋转2次,依次类推。
数字 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
旋转次数 |
1 |
2 |
3 |
1 |
2 |
3 |
1 |
2 |
3 |
表 2
④将每组处理后的字符串顺序连接, 每组之间用“*”作为间隔符号, 再将分组剩余的字符倒序 连接, 得到密文。
程序运行结果如下: