シナリオ: 要件はログイン時にパスワードを暗号化することであり、ユーザーはブラウザー F12 やFiddlerなどのパケット キャプチャ ツールでユーザーのログイン パスワード パラメーターをキャプチャすることは許可されていません。
解決策とアイデア: md5 暗号化を使用する
用户注册时将加密后的密码发送给后端存储
当登陆的时候,再将加密后的密码和数据库中加密的密码相匹配。
此加密无须解密
md5 の概要
md5加密
MD5(单项散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。
MD5功能:
输入任意长度的信息,经过处理,输出32位的信息;
不同的输入得到的不同的结果(唯一性)
根据32位的输入结果不可能反推出输入的信息(不可逆)
フロントエンドはMD5暗号化を使用します
安装:
npm install js-md5 -D
在页面中使用:
import md5 from “js-md5”
代码:
// 加盐
let salt='cvdf-yyds*123.cv987@'
this.loginForm.Password = md5(salt+ this.loginForm.Password );
ソルト暗号化を追加します。
加盐加密是一种对系统登录口令的加密方式,它实现的方式是将每一个口令同一个叫做”盐“(salt)的n位随机数相关联
自分で解読を試みる過程で、単純なパスワードのmd5暗号化は解読できることがわかり、暗号化が失敗する原因となるため、ソルト(塩)暗号化を使用してください
パスワードとソルトが一緒に暗号化されて暗号文が形成されるため、パスワードが弱いパスワードであっても、その組み合わせは複雑なパスワードになります。
ソルト値を付加した後のパスワードは非常に安全であるため、ソルトと最終的な暗号文が得られたとしても、それを解読するにはかなりの時間がかかるプロセスとなり、単純なMD5を解読する場合の数倍とも言えます。