RSA實現前端數據加密


一、前言

   一般在登錄注冊的時候,不能以明文的方式傳遞數據到后台,如果是http下,很容易被劫持。所以對數據進行加密是常規做法。

二、RSA算法

  ”RSA加密算法是一種非對稱加密算法。對極大整數做因數分解的難度決定了RSA算法的可靠性。換言之,對一極大整數做因數分解愈困難,RSA算法愈可靠。假如有人找到一種快速因數分解的算法的話,那么用RSA加密的信息的可靠性就肯定會極度下降。但找到這樣的算法的可能性是非常小的。今天只有短的RSA鑰匙才可能被強力方式解破。到目前為止,世界上還沒有任何可靠的攻擊RSA算法的方式。只要其鑰匙的長度足夠長,用RSA加密的信息實際上是不能被解破的。”----來自度娘

三、前端使用

  下載第三方js庫來使用RSA。下載地址

import _rsa from 'rsa'
import publikey fom '../component/key'
const rsa = new (_rsa.RSA)

//設置公鑰
rsa.setPublicKey(key);

//傳給后台
params: {
     userid:this.userId,
     password : rsa.encrypt( this.password ),
 }

說明:有一對像相對應的公鑰和私鑰匙,服務器獲得公鑰加密之后的密碼,再用用對應的私鑰打開。私鑰一般放在服務器上面,只有我們自己知道。這樣就可以做到,即使密碼被攔截,攻擊者也很難破解密碼。

四、node-crypto模塊加密

const crypto = require('crypto');

const secret = '123456';
const hash = crypto.createHmac('sha256', secret)
                   .update('I love cupcakes')
                   .digest('hex');
console.log(hash);

//3d75d8ac4218af38afa74989472d87cbe2e706c67d19b7d0508a12b9ebc4d8e9

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM