数据之加密与解密



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



下面将利用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将计算得到的新特征码与解密后的特征码进行比较,得出原始数据是否合法可靠。

数据之加密与解密

时间: 2024-08-02 22:42:27

数据之加密与解密的相关文章

数据的加密和解密初识

数据的加密和解密 加密是让数据从明文变成密文,传输过程中是密文,传送过去之后对方接收到的也是密文. 可以理解为密文就是乱码,看不出内在的任何意义,通常也都是逐位对应的. 在接收方接收到密文之后只有把它还原为原来的样子才可以理解对方说的具体是什么,此过程就叫做解密. 1.不同主机之间的进程间通信:Socket-pair,套接字对 套接字Socket的三种类型: 流套接字(Socket_Stream):基于TCP协议通信的套接字 数据报套接字(Socket_Dgram):基于UDP协议通信的套接字

PHP 使用 mcrypt 扩展中的 mcrypt_encrypt() 和 mcrypt_decrypt() 对数据进行加密和解密

<?php /* 使用 mcrypt 扩展中的 mcrypt_encrypt() 和 mcrypt_decrypt() 对数据进行加密和解密 */ // 加密 $algorithm = MCRYPT_BLOWFISH; // 加密算法 $key = 'mycryptkey'; // 加密密钥 $data = '12345'; // 要加密或解密的数据 $mode = MCRYPT_MODE_CBC; // 加密或解密的模式 // 初始向量 $iv = mcrypt_create_iv(mcryp

jdk自带的MD5进行数据的加密与解密

package com.tools.util; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher;

C#数据Encrypt加密Encrypt解密的算法使用--非对称算法RSACryptoServiceProvider

C#数据加密解密的非对称算法使用---RSACryptoServiceProvider   Asymmetric algorithms--Encrypt Encrypt C#数据Encrypt加密Encrypt解密的相关算法可以参考System.Security.Cryptography,这个类库中包含MD5,SHA1,SHA256,SHA384,SHA512 MD5 and SHA256 are two of the HashAlgorithm subtypes provided by the

数据的加密和解密

当前网络环境中,数据的来往是十分密切,面对着海量的信息集合,很少有人去考虑如何去保证,或者说数据是怎么被保证安全的到达目的地的,在默认情况下,数据的发送是明文发送的,也就是说,数据的发送可以被除发送方和接收方的第三方所截获,读取信息,或者通过长年累月的数据量分析得出发送方的某些重要信息,这对于用户来说都是不可接受的,所以随着网络数据的不断发展,人们不断对数据加密进行更新换代,由一开始的传统加密,通过替换的方式加密信息,到后来的块加密算法: 现在的加密算法,如对称加密,公钥加密,作为一段时期的主要

iOS开发之 AES+Base64数据混合加密与解密

2016-04-08 09:03 编辑: liubinqww 分类:iOS开发 来源:liubinqww 投稿 4 889 "APP的数据安全已经牵动着我们开发者的心,简单的MD5/Base64等已经难以满足当下的数据安全标准,本文简单的介绍下AES与Base64的混合加密与解密" AES:高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES

系统安全之数据的加密和解密、CA的介绍、SSL或TLS协议简介及握手过程

网络通信需要安全                所谓的网络通信就是进程与进程之间的通信                        然而进程的通信一般可以分成两类:1.同一主机之间的进程通信                                                                              2.不同主机之间的进程通信                                                              

加密解密技术—Web.config加密和解密

阅读目录 一:我们为什么要对web.config配置文件中的配置节加密? 二:怎么样加密和解密? 三:实例 四:运行效果 一:我们为什么要对web.config配置文件中的配置节加密? 因为在我们的项目中,有的配置节可能包含敏感信息,我们看下面的<connectionStrings/>配置节中包含了我们连接 数据库的用户名和密码以及IP地址,这要是暴露出去是很危险的,还有<identity/>配置节中包含了运行时使用的模拟账号的用户名和密 码,这些配置节都包含着敏感信息,我们不希望

加密、解密 &nbsp; 以及OpenSSL建立私有CA

加密.解密,以及OpenSSL建立私有CA 加密技术是互联网最常用的安全保密手段,其利用技术手段把重要的数据加密后传送,到达目的地后再用相同或不同的手段进行解密. 加密技术包括两个元素:算法和密钥 常用的加密技术:对称加密.非对称加密.单向加密 以上几种加密技术各有千秋,经常组合起来使用 1.对称加密 加密和解密使用同一个密钥,将明文分隔成固定大小的块,逐个进行加密: 常见算法:DES  3DES  Twofish  IDEA  IDEA  CAST5  RC6 Blowfish 2.非对称加密