打字猴:1.700416889e+09
1700416889 计算机是怎样跑起来的 [:1700412727]
1700416890 计算机是怎样跑起来的 10.3 密钥越长,解密越困难
1700416891
1700416892 在因特网环境中,会有很多不固定的人群相互收发经过加密处理的数据。一般情况下,会将所使用的加密方式公开,而只对密钥的值保密。但令人遗憾的是,这个世界上还是有坏人的,有些人会窃取那些并不是发送给他们的加密数据,企图破解后用于其他目的。尽管这些人并不知道密钥的值,但他们会利用计算机强大的计算能力,用密钥所有可能的值去试着破解。例如,要想破解用XOR运算加密得到的密文MJHHFJ,程序只要把0-9这几个值分别作为密钥都尝试一遍就能做到(如代码清单10.4,图10.5所示)
1700416893
1700416894 代码清单10.4 通过XOR运算破解密文的程序
1700416895
1700416896 cipher=InputBox(“请输入密文”)
1700416897
1700416898 plaintext=””
1700416899
1700416900 For key=0 To 9
1700416901
1700416902   Plaintext=plaintext&”密钥”&Cstr(key)&”:”
1700416903
1700416904   For i=1 To Len(cipher)
1700416905
1700416906 letter=Mid(cipher,i,1)
1700416907
1700416908 plaintext=plaintext&Chr(Asc(letter) Xor key)
1700416909
1700416910   Next
1700416911
1700416912   plaintext=plaintext&Chr(&HD)
1700416913
1700416914 Next
1700416915
1700416916 MsgBox plaintext
1700416917
1700416918 图10.5 代码清单10.4的执行结果
1700416919
1700416920
1700416921
1700416922
1700416923 在因特网上经过加密的数据也难免被窃取,因此就要先设法做到即便数据被窃取,其内容也难以被破解。为此可以把密钥设成多位数而不仅仅是一位数。下面,就试着以三位数345为密钥,通过XOR运算来进行加密(如代码清单10.5所示)。将明文中的第一个字母与3做XOR运行,第二个字母与4做XOR运算,第三个字母与5做XOR运算,从第四个字母开始,依次与3,4,5做XOR运算,依次类推(如图10.6所示)
1700416924
1700416925 代码清单10.5 通过与三位数进行XOR运算实现加密和解密
1700416926
1700416927 Dim key(2)
1700416928
1700416929 key(0)=3
1700416930
1700416931 key(1)=4
1700416932
1700416933 key(2)=5
1700416934
1700416935 text1=InputBox(“请输入明文或密文”)
1700416936
1700416937 text2=””
1700416938
[ 上一页 ]  [ :1.700416889e+09 ]  [ 下一页 ]