首页 > 代码库 > 数据之加密与解密

数据之加密与解密


写在前面:如果此文有幸被某位朋友看见并发现有错的地方,希望批评指正。如有不明白的地方,愿可一起探讨。



下面将利用Bober与Alex的通信来解释说明数据的加密和解密过程


Bober与Alex进行通信的简单过程



wKioL1Pdw86i3BfeAABg9bgJrjU141.jpg

    说明:

        图中的1,2过程为Bober和Alex获取对方的签署证书;

        Bober获得Alex的签署证书后,验证其证书的合法性和正确性;

        Bober利用单向加密、对称加密以及公钥加密对自己的数据进行加密;

        图中的过程3表示Bober将加密后的数据发送给Alex;

        Alex接收到Bober的加密数据后,对其进行解密得到Bober的原始数据;


Bober对原始数据的加密过程


    Bober获取Alex的签署证书并验证成功后,需要对自己的数据进行加密,如图2所示:

    wKioL1Pd0S2hcFwpAAGylANnjE0637.jpg

    第一步,Bober利用单向加密算法提取出原始数据(数据1)的特征码;

    第二步,Bober利用自己的私钥对特征码进行加密后,放在原始数据的后面形成数据2

    第三步,Bober利用算法提取数据2的字符串作为对称加密的密码;

    第四步,Bober利用对称加密算法将数据2进行加密;

    第五步,Bober利用Alex的公钥对字符串密码进行加密后,放在数据2的后面形成数据3

    第六步,Bobre将加密后的数据3发送给Alex。


Alex对接收到的数据3进行解密的过程


    Alex获取到Bober的签署证书并验证成功后,需要对接收到的数据进行解密,如图3所示:

    wKioL1PdyrXB8mXMAAGdEeEWKt0026.jpg

    第一步,Alex利用自己的私钥解密字串密码;

    第二步,Alex拿到字串密码后,利用与Bober同样的对称加密算法对数据3中的数据进行解密得到数据2

    第三步,Alex将通过数据2得到原始数据(数据1);

    第四步,Alex利用同样的单向加密算法计算出数据1的新特征码;

    第五步,Alex利用Bober的公钥对附加在原始数据后的特征码进行进行解密;

    第六步,Alex将计算得到的新特征码与解密后的特征码进行比较,得出原始数据是否合法可靠。