对称加密非常好理解, 原始数据, 比如
将
明文 : "国家机密, 为啥告你"
和 秘钥 : "19940415"
传入 加密函数 : function(明文, 秘钥) => 密文
获取到密文 : "9o@da13#[>d82nc"
然后解密方, 用同样的秘钥和解密函数去解密得出明文
简单易懂, 但头疼的是如何保存好秘钥和传递秘钥 !!!
对称加密 : 明文 <-> 秘钥🔑 <-> 密文
常见三种对称加密算法 :
DES
3DES
AES
非对称加密 :
怎么算公钥和私钥呢 ?
可以公开给任何人的就是公钥, 只有自己保留的就是私钥, 无所谓其中包含的数据是什么, (事实上, 私钥里已经包含了公钥的信息)
所以只需要保存好私钥, 如果私钥丢了, 其它人就可以冒充成为 "你" 了 !
常见非对称加密算法 : RSA
首先需要有一对公私钥 ~
解决了如何证明你是你自己的问题 !
解决了如何传输加密数据, 让截获数据的人看不到数据内容
比特币钱包 : 非对称加密
小程序 用户数据的签名验证和加解密 : 对称加密 : AES-128-CBC
非对称加密看起来牢不可破, 但其实 MITM 就是专门破解非对称加密的一种方式
我们可以使用 Charles 来截取别人的 HTTPS 请求, 分析其它 App 的请求数据等
Node.js 加密库 : crypto-js