①将明文中每个字符转换成其对应的十进制ASCII码值;
②明文的密钥由0-7这8个数字循环产生,如图-1所示;
图-1
③加密过程中,先将每个明文字符的十进制ASCII码值转换成8位二进制数,再将每个字符对应的密钥转换为4位二进制数,最后,将由明文字符的十进制ASCII码值转换成的8位二进制数中的左边4位二进制数和右边4位二进制数,分别和由密钥数字转换成的4位二进制数逐位进行异或运算:1⊕1=0,1⊕0=1,0⊕1=1,0⊕0=0。
例如:明文字符串“Programming”中字母“a”用二进制表示是01100001,其对应的密钥是数字5,用二进制表示是0101,加密后结果是00110100,如图-2所示。
图-2
④将每个字符的加密结果按行输出,如图-3所示。请回答下列问题:
s=input("输入待加密的原文: ") k=0 ; s1="" ; s2="" print("加密结果为: ") for i in range(0,len(s)): ch= ord(s[i]) m=k for j in range(0,4): t1=str((ch%2+m%2)%2) t2= s1=t1+s1 ; s2=t2+s2 ch=ch//2 ; m=m//2 print(s2+s1) s1="" ; s2=""
|
图-3 |