1700416773
计算机是怎样跑起来的 10.1 先来明确一下什么是加密
1700416774
1700416775
在作为加密对象的数据中,蕴含着文本、图像等各种形式的信息。但由于计算机会把所有的数据用数字表示,所以即便有各种展现形式,对其加密的技术却是基本相同的。因此在本章中,我们就假设加密的对象仅限于文本数据。
1700416776
1700416777
文本数据可由各种各样的字符构成。其中每个字符都被分配了一个数字,称为“字符编码”。定义了应该把哪个编码分配给哪个字符的字符编码体系叫做字符集。字符集分为ASCII字符集、JIS字符集、Shift-JIS字符集、EUC字符集、Unicode字符集等若干种
1700416778
1700416779
在表10.1中,以十进制数字列出了大写英文字母(A-Z)的ASCII编码。
1700416780
1700416781
表10.1 用于表示A-Z的ASCII编码(10进制)
1700416782
1700416783
1700416784
1700416785
1700416786
计算机会把文本数据处理成数字序列,例如在使用了ASCII编码的计算机中,会把NIKKEI处理成78 73 75 75 69 73。可是只要把这一串数字转换为对应的字符显示在屏幕上,就又变成了人们所认识的NIKKEI了。通常把这种未经加密的文本数据称为“明文”
1700416787
1700416788
数据一旦以明文的方式在网络中传输,就会有被窃取滥用的危险,因此要对明文进行加密,将它转换成“密文”。当然密文也仅仅是一串数字,但如果把密文显示在屏幕上,那么在人类看来显示的也只不过是读不懂、没有意义的字符序列罢了
1700416789
1700416790
虽然存在各种各样的加密技术,但是其中基本手段无外乎还是字符编码的变换,将构成明文的每个字符的编码分别变换成其他的数值。通过反转这种变换过程,加密后的文本数据就可以还原。通常把密文还原成明文的过程(即解读密码的过程)称为“解密”
1700416791
1700416792
1700416793
1700416794
1700416796
计算机是怎样跑起来的 10.2 错开字符编码的加密方式
1700416797
1700416798
有关加密的概念和术语先解释到这里,下面就通过运行程序来实际体验一下加密的过程吧。代码清单10.1中,列出了一段用于加密的示例程序。
1700416799
1700416800
代码清单10.1 用给字符编码加3的方法加密
1700416801
1700416802
plaintext=InputBox(“请输入明文”)
1700416803
1700416804
ciper=””
1700416805
1700416806
For i=1 To Len(plaintext)
1700416807
1700416808
letter=Mid(plaintext,i,1)
1700416809
1700416810
cipher=cipher&Chr(Asc(letter)+3)
1700416811
1700416812
Next
1700416813
1700416814
MsgBox cipher
1700416815
1700416816
在这个程序中,使用了如下加密方法:将文本数据中每个字符所对应的字符编码一律向后错3个,即给原字符编码的值加上3。把这段程序以.vbs为扩展名保存,双击运行这段程序。试着在最初弹出的窗口中输入要加密的文本数据(明文),例如输入NIKKEI,单击OK按钮,在接下来弹出的窗口中会显示出加密后的文本数据(密文)。因为每个字符的编码都向后错了三个,所以得到的是QLNNHL。这样的话,即便是被人偷偷地看到了,也无法理解这个字符串的意义(如图10.1所示)
1700416817
1700416818
图10.1 代码清单10.1的执行结果
1700416819
1700416820
1700416821
[
上一页 ]
[ :1.700416772e+09 ]
[
下一页 ]