密码学之可逆加密 杂谈(对称、非对称)

来源:互联网 发布:淘宝上下架时间 编辑:程序博客网 时间:2024/05/16 01:33

介绍

加密算法是对二进制进行加密,对称加密得到的结果是二进制。

密码学一般加密以及解密后,会对文件进行MD5。

以下两种加密算法都是可逆的!!

1、对称加密算法 (传统加密算法)

明文 >> 加密 >> 密文
密文 >> 解密 >> 明文

加密和解密都是用同一个密钥!!
密钥的保密工作非常的重要!!

DES
使用非常少,因为强度不够。

3DES
使用更加少,使用3个密钥对相同的数据执行三次加密。密钥管理更加复杂。

AES
目前使用最多!加密强度也非常大!

2、非对称加密(RSA) (现代加密算法)

私钥加密 >>>> 公钥解密!
公钥解密 >>>> 私钥解密!

对称加密方式

对称加密算法有两种加密方式:

1、ECB:电子代码本

坏处:拿到某一块数据破解后,就可以轻松破解全部的数据。

//使用ECB加密方式不加盐,用616263,把abc.txt加密为msg1.bin文件

//终端输入的616263,是二进制。如果用代码就是 @”abc”

openssl enc -des-ecb -K 616263 -nosalt -in abc.txt -out -msg1.bin

//查看msg1.bin文件的16(32)进制文件

xxd msg1.bin

2、CBC:密码块链

使用一个密钥和一个iv对数据进行加密
第二块数据的加密,严重依赖上一块数据的加密结果。
可以有效的保证数据的完整性!

单纯的拿到某一块的数据,也无法轻松破解全部的数据。

//使用cbc加密(8位的iv) iv是向量

openssl enc -des-cbc -iv 0102030405060708 -K 616263 -nosalt -in abc.txt -out -msg3.bin

非对称加密

RSA加密其实就是简单的乘法运算,做N多次。

因为这种加密的方式,所以它加密的过程非常的缓慢。

加密效率极其的低,不能对大文件进行加密。

数据加密

Tips:HTTPS本身就是RSA加密的通道。

AES-RSA同时加密的方式更加安全!

数据进行AES加密,密钥要保密,密钥通过RSA加密。

服务器是知道密钥的。

客户端的密钥是服务器给的。

服务器把密钥通过RSA加密,(服务器用私钥对这个密钥加密),加密后发给客户端,客户端利用公钥解密,得到这个密钥。

客户端千万不要保存在本地。
客户端每次加密,都要从服务器拿一下加密后的密钥。
别人拿到是没用的,因为没有公钥。
然后客户端再次解密,得到想要的密钥。

客户端用最后得到的这个密钥进行数据的加密,再传给服务器。

数字签名

数据一段一段发送,就是数据本身,消费信息,数据包,数据报文。

如果裸奔直接发送给服务器,要是被拦截,篡改了。服务器也不知道。这就很危险了。所以我们要进行安全操作。

安全操作:

1、数据进行MD5散列

得到一个32位的字符串。(唯一的)

2、对32位字符串进行RSA加密

这个就是数字签名。

3、然后把数据报文和数字签名,一起打包发送给服务器

4、服务器拿到数据,对数据报文进行MD5 (A)

5、服务器解密数字签名,得到MD5 (B)

6、如果A和B 是一样的,说明信息是正确的,没有被篡改过。

(黑客不知道公钥,也无法篡改后再改签名。麻烦的狠。
而且数据包的数据截取一些,无法干更多事情)

Tips:
一个真正的黑客是不会从你的防盗门进你的家的。 哈哈哈。

原创粉丝点击