非对称加密

如果数据的传输过程是不安全的, 如何保证数据传输到目的地时的数据不被篡改, 这就需要非对称加密了

明文发送

浏览器访问服务器 服务器返回登录页面

操作

客户端在填写账号密码后明文传输

后果

中间的传输阶段 有人可能会记录传输的数据 此时就能知道该用户的账号密码 以后就能任意操作用户的数据了

应对

数据使用非对称加密 就能避免这个问题

加密发送

浏览器访问服务器 服务器返回登录页面 并告诉浏览器 公钥 K1, 加密算法 M1

操作

客户端在填写账号密码后 信息使用 公钥 K1, 加密算法 M1 加密后传输

后果

第三方黑客截取数据后无法解密

如果不发送数据 用户就知道数据传输通道有问题

如果发送自己捏造的数据并使用 K1 加密后传输 服务器解密后验证不通过 也就无法操作用户的数据

如果发送就只能原样发送数据

目的

达到了无法篡改数据

简单举例

1001 可以和任何一个三位数相乘末尾三位数仍然不变

A 根据 1001(=91*11) 生成公钥 K1=91 私钥 K2=11

告诉 B 公钥 K1=91 加密算法 M=原始明文*公钥, 取末尾3位数

B 想告诉 A 的数据是 123, 此时进行加密 123 * 91 = 11193, 取末尾3位 193

发送 193 给 A

A 拿到 193 后进行解密, 193 * 11 = 2123, 取末尾3位 193, 得到原始数据 123

中间人 无法根据加密数据 193 和 公钥K1=91 算法M 倒推出原始数据 123

这样就保障了数据的安全