登入/註冊/支付 基本都要用到加密方案
加密原理:
後台生成rsa金鑰對,然後在登陸頁面設定rsa公鑰,提交時用公鑰加密密碼,生成的密文傳到後台,用私鑰解密,獲取密碼明文。
前端運用rsa技術進行加密簡單來說分為以下幾步驟(0-4):
0.md5加密:引入md5的js,然後使用var md5password = md5( input框的明文value值 )
引入rsa加密檔案jsencrypt.js
例項化加密物件
var encrypt = new jsencrypt(); //前端要做的事情
var decrypt = new jsencrypt(); //前端不要做的事情,可能後台要處理的事情
設定公鑰 / 金鑰(公鑰pubkey跟你們後台大佬要吧)
encrypt.setpublickey(pubkey); //前端要做的事情
decrypt.setprivatekey(privkey); //前端不要做的事情,可能後台要處理的事情
加密 / 解密
var encrypted = jsencrypt.encrypt( 待加密內容md5password ); //前端要做的事情(這個「待加密的內容」是經過md5加密過的密碼)
var uncrypted = decrypt.decrypt( 加密後待解密內容 ); //前端不要做的事情,可能後台要處理的事情
我不太明白的事情是:為什麼第三步要encrypt.setpublickey來處理公鑰(我看之前的專案中最後登入介面傳到後台的是:1.經過md5與encrypt兩次加密的賬戶密碼,2.獲取公鑰介面,後台傳給我的公鑰(沒處理過),與及一些其他引數內容。
不太明白的點:1.介面返回的公鑰有啥用? 2.encrypt.setpublickey(pubkey)有啥用?(後台給的公鑰是加密用的,後台自己保留的私鑰是解密用的。但是這個公鑰私鑰只進行了encrypt.setpublickey(pubkey)與decrypt.setprivatekey(privkey),這兩個操作,我並不明白它的具體意義在哪?)
iOS SHA256加密 RSA公鑰加密
這兩天公司有這樣兩個需求,乙個是從前端 h5 互動,獲取到乙個字串,要求對這個字串進行,sha256計算摘要 也相當於加密 之後得到的是uint8 t型別的位元組陣列,然後對位元組陣列進行rsa公鑰加密。在base64編碼,返回給前端 h5 ios也是前端 最終資料還是給後台。另乙個需求就是 公鑰驗...
RSA公鑰加密演算法
rsa 離散對數 橢圓曲線是目前三大公鑰加密演算法,rsa是其中應用最多的一種。下面將介紹rsa演算法的理論基礎。公鑰加密或說非對稱加密其作用已經不言而喻,在實際中已經得到大量應用,比如https證書,其中便包含了 的公鑰資訊。非對稱加密與對稱加密最大的區別是,加密與解密使用不同的金鑰,通過公鑰加密...
RSA公鑰加密演算法
公鑰加密或說非對稱加密其作用已經不言而喻,在實際中已經得到大量應用,比如https證書,其中便包含了 的公鑰資訊。非對稱加密與對稱加密最大的區別是,加密與解密使用不同的金鑰,通過公鑰加密的內容只有通過私鑰才能解密,反之亦然。因此,發布者完全可以把公鑰公布於眾,使傳送者便於查詢。與此相反,對稱加密需要...