我们是如何加密密码的

layout title description date category tags
2015-05-12 13:20:20 -0700

| | |

因为密码属于极其敏感数据,重要性不言而喻。无论是数据库或者任何环境都不能保证绝对安全,任何数据泄露或者传输中窃取都是可能存在的。 可以看看CSDN的经典案例

因此对于密码这种极其敏感的数据不仅需要加密,而且要进行不可逆的加密(根据存下来的数据,永远无法知道真实密码)。

我们是如何加密的

大概分为三个阶段,从数据库安全一直向前端延伸

第一阶段 后端加密(噪声干扰加密)

初期采用的是此版本的机密的方式 因为常用的MD5对于反破解性已经不够了, 以账号干扰进行加密,防止拿到密钥后的暴力猜解。

第二阶段 前端加密(前端md5)

由于密码传输过程中的安全性并不能保证安全性 特别是校园网,经常能抓到一堆各种登录密码(例如南开内网的网关登录账号),因此在传递之前对密码进行加密也就有必要了。 密码加密不需要可逆,因此在前端使用相对简单快速的md5来加密之后在进行传输。 整个大概是这样的

密码==>JS前端加密====》网络传输===》(服务器后端)噪声干扰二次加密==》再次加密==》存数据库

对于所有的设置和修改密码均采用这种方式进行加密传输的。

第三阶段 https登录

由于为了更加方便的用户体验,首页将注册和登录合二为一了,需要还原密码进行验证,所以并能进行不可逆加密,再这里使用封装好的RSA算法进行https加密。

有于暂时服务器环境的域名不支持https加密,这里采用跨站共享存储验证的方式经验登录验证。 yunyin.org ==>https验证==>跳转=》yunyin.org一次性key校验=》登录成功

下一阶段

目前所有涉及到密码信息的传递和存储均做了加密。 实现完全https验证,密码继续使用前端加密。 完善认证和第三方授权机制。

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.125.0. UTC+08:00, 2024-05-06 23:58
浙ICP备14020137号-1 $访客地图$