数据加密方式:
1、对称加密
   加密效率高
DES
3DES:
AES:支持不同长度的加密128 192 256 512
Blowfish
工具
openssl enc
gpg

2、公钥加密(非对称加密)
  算法复杂,加密过程慢,通常用于实现密钥交换
加密和签名:RSA  ELGmal

数字签名:DSA

3、单向加密
  加密的过程是不可逆的,通常用于实现文件的摘要特征,保证文件完整性
MD5   128
SHA1  160
CRC-32
工具:
md5sum
sha1sum
openssl dgst

计算文件的校验码:
#md5sum  FILE     ==>  #openssl dgst -md5 FILE
#sha1sum FILE     ==>  #openssl dgst -sha1 FILE

计算机网络中数据加密实现过程:
  用户A给用户B发送加密文件:
1、用户A将文件用单向加密,生成文件的摘要特征码,用自己的私钥把特征码加密
2、A用户电脑随机生成对称密钥将文件和加密过的特征码一并加密
3、用B的公钥将对称密钥加密
4、将加密过的密钥和2过程中产生的文件一并发给B
 用户B收到A的加密数据:
1、用自己私钥将文件解密  得到A的对称密钥
2、用对称密钥解密文件 
3、用A的公钥解密特征码,并将文件单向加密也形成摘要特征码,两者比对,若一致,表示文件是A用户发送且未被篡改过
   
公钥是公开在网络中的  私要则是用户自己妥善保存的   
这里有个问题就是A 和B的公钥如何在网络中传输并确定A的公钥就是A的 B的公钥就是B的

用户B可向具有公信力的第三方 CA(证书颁发机构)申请证书,证书内容包括:

一、证书的持有者的相关信息
二、CA的相关信息
三、证书的使用方法
        四、公钥

  CA会用私钥对证书的特征码加密  用户A和B需要进行数据加密传输是,会各自得到对方的证书,会用CA的公钥解密,并对比特征码,以实现证书的真实性,确定就是对方的证书,那么就可以得到对方的公钥  上述过程就可以进行



在Linux中颁发过程 ,因为是实验过程  所以需要自己创建个CA,此CA为自己颁发证书

CA服务器建立:
#cd /etc/pki/CA
#vim /etc/pki/tls/openssl.cnf
dir             = ../../CA   替换成/etc/pki/CA   此目录为CA的工作目录
#openssl genrsa 1024>/private/cakey.pem     //生成私钥
 #chmod 600 cakey.pem
#openssl req -new -x504 -key /private/cakey.pem -out cacert.pem -days=365  //为自己颁发证书
  需要为CA服务器建立目录和文件
 #mkdir  certs crl newcerts
  #touch index.tst serial crlnumber
  #echo 01>serial      处理证书请求的文件序列号 从01 开始
 
 
用户向CA请求
cd /etc/http
#openssl genrsa 1024 >httpd.key
#openssl req -new -key httpd.key -out httpd.csr   //生成证书请求  会要求输入相关信息
#scp httpd.csr /CASERVERIPADD:/tmp      //将httpd.csr文件cp到CA服务器中,递交请求
  
CA处理用户的证书请求  
#openssl ca -in /tmp/httpd.csr -out httpd.crt   //颁发证书