postgrelsql base64加密,JS base64解密


 項目中做雲桌面對接,需要在項目中查出用戶的明文密碼,拼接到雲桌面登陸地址中,防止明文傳輸,做了base64加密解密,防止小白黑客盜取用戶密碼。

 

postgrelsql base64加密SQL語句:

查詢用戶證件號碼后四位,base64加密的密碼

 SELECT 
	substr(idno, length(idno) - 3) idno,
	ENCODE(cast(password as bytea),'base64') xm
FROM security.oauth_user 
WHERE id  = #{USERPK}

 

JS代碼:

模擬post請求,雲桌面需要Post請求模擬登陸,其他系統以get方式

 /*
     *功能: 模擬form表單的提交
     *參數: URL 跳轉地址 
     *     PARAMTERS 參數
     *     METHOD post或者get
     */
     function postUrl(URL, PARAMTERS,METHOD) {
         //創建form表單
         var temp_form = document.createElement("form");
         temp_form.action = URL;
         //如需打開新窗口,form的target屬性要設置為'_blank'
         temp_form.target = "_blank";
         temp_form.method = METHOD;
         temp_form.style.display = "none";
         //添加參數
         for (var item in PARAMTERS) {
             var opt = document.createElement("textarea");
             opt.name = PARAMTERS[item].name;
             opt.value = PARAMTERS[item].value;
             temp_form.appendChild(opt);
         }
         document.body.appendChild(temp_form);
         //提交數據
         temp_form.submit();
     }

 

 //打開APP鏈接
     $scope.openUrl = function(app){
         var parames = new Array();
         var method = "get";
         if(app.name == "雲桌面" || app.id == "ebe6132d-cbcc-4349-aa36-5810fa55c048"){
            var username = $scope.userInfo.pinyin + $scope.userInfo.idno;
            var pwd = window.atob($scope.userInfo.pwd);
            parames.push({ name: "login", value: username});
            parames.push({ name: "passwd", value: pwd});
            method = "post";
         }
         
         postUrl(app.url, parames,method);
     }

 

 

 

補充:

從IE10+瀏覽器開始,所有瀏覽器就原生提供了Base64編碼、解碼方法,不僅可以用於瀏覽器環境,Service Worker環境也可以使用。
方法名就是 atob 和 btoa ,具體語法如下:

window.btoa('china is so nb') // 編碼
"Y2hpbmEgaXMgc28gbmI="
window.atob("Y2hpbmEgaXMgc28gbmI=") // 解碼
"china is so nb"

 

 

 

開源的base64.js(https://github.com/dankogai/js-base64) ,使用很簡單,瀏覽器引入該JS文件,然后Base64編碼這樣:

Base64.encode('china is so nb'); // 編碼
"Y2hpbmEgaXMgc28gbmI="
Base64.decode("Y2hpbmEgaXMgc28gbmI="); // 解碼
'china is so nb'

 


免責聲明!

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



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