數據安全之AES前端加密_網(wǎng)絡(luò )編程_奇迪科技(深圳)有限公司(m.cheanjie.com)
為了安全,應該盡可能避免敏感數據以明文的形式傳輸,例如登錄頁(yè)面的密碼,不應該直接發(fā)送到服務(wù)器,而是應該在前端就先進(jìn)行加密處理,然后再傳輸到服務(wù)器,這樣就可以避免被“中間人”截獲到密碼明文,在一定程度上保證了密碼的安全。
加密的方式很多,例如:AES、MD5、SHA等,這里以AES為例介紹如何前端加密密碼。
前端加密JS代碼:(需要用到開(kāi)源的aes.js庫,需要自行網(wǎng)上搜索、下載)
<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>
得到加密的密文后,再傳輸到服務(wù)器后臺處理,這就解決了明文傳輸容易別截獲的問(wèn)題。
*備注:
AES可逆加密算法,服務(wù)端后臺收到密文后,可以將其解密得到原始字符,以PHP代碼為例:
<?php $str='MsKU3O+O0LXPohuzepm9Hg==';//經(jīng)過(guò)AES算法加密的密文 $key='opkioijikolpoijkiuj';//加解密的密鑰,要和加密時(shí)使用的一致。 $iv='1234567890123456';//加解密的向量,要和加密時(shí)使用的一致。 echo openssl_decrypt($str, ’AES-256-CBC’,$key , 0,$iv);//解密后得到的明文是:123456 ?>
本文版權所有,轉載須注明:來(lái)源 http://m.cheanjie.com/qvdv-oop-883.html