• 大型网站技术架构 | 信息加密技术及密匙安全管理


    通常,为了保护网站的敏感数据,应用需要对这些信息进行加密处理,信息加密技术可以分为三类:

    • 单向散列加密
    • 对称加密
    • 非对称加密

    单向散列加密

    单向散列加密是指通过不同长度的信息进行散列计算,得到固定长度的输出,这个过程是单向的,即不能对输出的固定长度信息进行,反向运算得到输入的原始信息,如图所示。

    利用单向散列加密的这个特性,可以对密码进行单向散列加密,将密码存入数据库,用户登录时,进行密码验证,同样计算得到输入密码的密文,并和数据库中的密文比较,如果一致,则密码验证成功。这样保存在数据库中的时用户输入的密码的密文,而且不可逆计算得到密码的明文,因此技术数据库被“拖库”,也不会泄露用户密码信息。

    虽然不能通过算法将单向散列密文反算得到明文密码,但是由于人们设置的密码具有一定的模式,因此可以通过彩虹桥(人们常用的密码和对应密文关系表)等手段进行比对猜测得出。为了加强单向散列计算的安全性,还会给散列算法加盐值(salt),salt相当于加密的密匙,增加破解难度。

    常用的单向散列算法有MD5,SHA等。单向散列算法还有一个特点就是输入的任何微小变化都会导致输出的完全不同。这个特性有时也会别用来生成信息摘要、计算具有高离散程度的随机数等用途。

    对称加密

    所谓对称加密是指加密和解密使用的密匙时同一个密匙(或者可以相互推算),如图所示。

    对称加密的有点时算法简单,加密效率高,系统开销小,适合对大量数据加密。缺点时加密使用的是同一把密匙,远程通信的情况下如何安全的交换密匙是一个难题,如果密匙丢失,那么所有的加密信息也就没有秘密可言了。

    常用的对称加密算法有DES算法、RC算法等。对称加密是一个传统加密手段,也是最常用的加密手段,适用于绝大多数需要加密的场合。

    非对称加密

    不同于兑成加密,非对称加密和解密使用的密匙不是同一把密匙,其中一个对外界公开,被成为公匙,另一个只有所有者知道,被成为私匙。用公匙加密的信息必须使用私匙才能解开,反之,用私匙加密的信息必须用公匙才能打开,如图所示。

    非对称加密技术常用在信息安全传输,数字签名等场合。

    非对称加密的常用算法有RSA 算法等,HTTPS传输中浏览器使用的数字证书实质上是经过权威机构认证的非对称加密的公匙。 

    密匙的安全管理

      信息的安全是靠密匙保证的,但是实际中,很多开发者直接把密匙写在源码中,稍好点的写在配置文件中,线上和开发配置不同的密匙。总之密匙本身是明文保存,公司内很多人可以接触到。增加了泄露的风险。所以密匙最好有专人维护。

  • 相关阅读:
    当电脑接双屏扩展显示器时,系统崩溃,QQ浏览器出现显示异常,通过如下方法使之正常
    【Java】你会使用 Lambda 表达式吗?
    前端js八股文大全
    Harmonyos Next——图片上传与下载
    设计模式学习笔记 - 单例设计模式
    Eclipse下载、安装、配置教程
    java--Lambda(2)表达式语法
    Linux服务器如何暂停程序与恢复进程
    python+django体质测试数据分析及可视化设计
    微信小程序开发:异步处理接入的生成式图像卡通化
  • 原文地址:https://blog.csdn.net/weixin_40986713/article/details/125388778