欢迎来到奇迪科技(深圳)有限公司,超值服务提供卓越产品!
为了安全,应该尽可能避免敏感数据以明文的形式传输,例如登录页面的密码,不应该直接发送到服务器,而是应该在前端就先进行加密处理,然后再传输到服务器,这样就可以避免被“中间人”截获到密码明文,在一定程度上保证了密码的安全。
加密的方式很多,例如:AES、MD5、SHA等,这里以AES为例介绍如何前端加密密码。
前端加密JS代码:(需要用到开源的aes.js库,需要自行网上搜索、下载)
<script src="/public/js/aes.js"></script> <script> var password="123456";//需要加密的密码明文 var key = CryptoJS.enc.Utf8.parse("opkioijikolpoijkiuj"); var iv = CryptoJS.enc.Utf8.parse("1234567890123456"); var encrypted = CryptoJS.AES.encrypt(password, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); //得到加密后的密码密文 password=encrypted.toString(); </script>
得到加密的密文后,再传输到服务器后台处理,这就解决了明文传输容易别截获的问题。
*备注:
AES可逆加密算法,服务端后台收到密文后,可以将其解密得到原始字符,以PHP代码为例:
<?php $str='MsKU3O+O0LXPohuzepm9Hg==';//经过AES算法加密的密文 $key='opkioijikolpoijkiuj';//加解密的密钥,要和加密时使用的一致。 $iv='1234567890123456';//加解密的向量,要和加密时使用的一致。 echo openssl_decrypt($str, ’AES-256-CBC’,$key , 0,$iv);//解密后得到的明文是:123456 ?>
本文版权所有,转载须注明:来源 https://www.qvdv.net/qvdv-oop-883.html