数据加密方式

想要安全的传输,最重要的也是唯一的解决方案就是加密,就好比以前苏联和德国世界大战,双方互相借助通信力量拦截情报,加密情报,反解密情报等。安全通信的本质其实就在于你的加密是否足够强大。通用意义上的加密技术分为哈希散列,对称加密和非对称加密三种。

哈希散列

哈希散列并不能算是严格意义上的加密技术,因此我把它称为通用意义上的加密技术,哈希散列的通用定义是:通过一些不可逆的哈希算法将原本的明文内容转化为散列后的密文内容。 由于散列算法几乎不可逆,因此攻击者几乎无法通过密文猜测到对应的明文内容。通过这种机制做到加密控制,典型的算法由我们之前耳熟能详也就是课程内用到的md5加密算法。安全传输密码MD5Util上这种加密算法有个非常大的隐患,就是对于若口令的攻击特别容易被破解,比如我对应的的用户明文密码是

明文密码=123456
使用md5加密后的密文
密文密码=e10adc3949ba59abbe56e057f20f883e

对称加密

最典型的对称加密方式就是AES,DES之类的,通信双方约定一个一样的对称加密密钥,在传输前客户端使用密钥加密好后传输给服务端,服务端通过密钥解密后拿到明文,由于密钥的不同导致即便是弱口令攻击者也根本无法做对应的暴力破解手段。看似貌似非常完美,但有个致命的问题在于这个密钥存储在哪里才安全,服务端由于都是受到防火墙并且多道密码的保护,一般很少会被人攻破,但客户端,尤其是运行在浏览器上的html,js等文件确是直接以可运行的明文代码的方式跑在用户浏览器上的,直接在客户端加密就等于把自己的加密算法和保护密钥全直接送给攻击者,因此这类的加密方式只适用于服务端与服务端之间的交互

非对称加密

非对称加密属于处理这类问题的王道,RSA算法为非对称加密的标杆性算法,通过数学方式生成“公钥”,“私钥”对,整个服务通信过程如下:

  • 客户端在连接建立之初就获取到服务端的公钥
  • 客户端要传输数据前使用公钥加密传输内容
  • 服务端获取加密后的数据并用自己的私钥解密获取传输内容

由于公钥是公共的,所有地方都可以被拿到使用,私钥是绝密的,只能被服务端保密持有。依靠这种简单的方式就完成密钥的安全管理和通信

HTTPS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值