首页 > 代码库 > 数据之加密与解密
数据之加密与解密
写在前面:如果此文有幸被某位朋友看见并发现有错的地方,希望批评指正。如有不明白的地方,愿可一起探讨。
下面将利用Bober与Alex的通信来解释说明数据的加密和解密过程
Bober与Alex进行通信的简单过程
说明:
图中的1,2过程为Bober和Alex获取对方的签署证书;
Bober获得Alex的签署证书后,验证其证书的合法性和正确性;
Bober利用单向加密、对称加密以及公钥加密对自己的数据进行加密;
图中的过程3表示Bober将加密后的数据发送给Alex;
Alex接收到Bober的加密数据后,对其进行解密得到Bober的原始数据;
Bober对原始数据的加密过程
Bober获取Alex的签署证书并验证成功后,需要对自己的数据进行加密,如图2所示:
第一步,Bober利用单向加密算法提取出原始数据(数据1)的特征码;
第二步,Bober利用自己的私钥对特征码进行加密后,放在原始数据的后面形成数据2;
第三步,Bober利用算法提取数据2的字符串作为对称加密的密码;
第四步,Bober利用对称加密算法将数据2进行加密;
第五步,Bober利用Alex的公钥对字符串密码进行加密后,放在数据2的后面形成数据3;
第六步,Bobre将加密后的数据3发送给Alex。
Alex对接收到的数据3进行解密的过程
Alex获取到Bober的签署证书并验证成功后,需要对接收到的数据进行解密,如图3所示:
第一步,Alex利用自己的私钥解密字串密码;
第二步,Alex拿到字串密码后,利用与Bober同样的对称加密算法对数据3中的数据进行解密得到数据2;
第三步,Alex将通过数据2得到原始数据(数据1);
第四步,Alex利用同样的单向加密算法计算出数据1的新特征码;
第五步,Alex利用Bober的公钥对附加在原始数据后的特征码进行进行解密;
第六步,Alex将计算得到的新特征码与解密后的特征码进行比较,得出原始数据是否合法可靠。