2017-01-09 25 views
0

URL GETパラメータを暗号化して、すべてのリンクが以下のようになるようにします。春のURLパラメータの暗号化と復号化

home.htm?ecryptParam=aajsbjabsjvyhasyayasy 

実際:HTML形式で暗号化された

同時に

home.htm?fName=samir&lName=vora 

は、コントローラクラスには、自動的に復号化された値を持つことになりますし、私は、要求からそれを取り出すことができます。例えば:

リンク:

home.htm?ecrypt=SKJIIU86iuGkJGkJFHGBVBVn 

コントローラクラス: URLで暗号化形式として値を渡すと、あなたは暗号化形式として要求のparamを使用して取得する場合はrequest.getParameter("fName");は、サミール

+1

dont'tは、heavyliftingを行うhttpsを使用して、要求と応答は、サーバによって暗号化と復号化されます。 – ares

+0

okそれはどのように仕事を教えて私に例を与えるが、どのように我々はこのように可能にすることができます –

+0

Google ares

答えて

0

本当にセキュリティバックエンドを処理する必要がありますが、単純なテキストの難読化はJavaScriptで容易に実現できます。ここで

は一例です。

//Encrypter class 
 
var stringEncrypter = (function() { 
 
    function stringEncrypter() {} 
 
    stringEncrypter.encrypt = function(str) { 
 
    str = str.toString(); 
 
    var returnCode = []; 
 
    for (var strIndex = 0; strIndex < str.length; strIndex++) { 
 
     var element = str[strIndex]; 
 
     //Push with bitwise offset (or remove the bitwise offset here and in decrypt) 
 
     returnCode.push(element.charCodeAt(0) << this.off); 
 
    } 
 
    //return a joined string 
 
    return returnCode.join(this.splitter); 
 
    }; 
 
    stringEncrypter.decrypt = function(str) { 
 
    var list = str.split(this.splitter); 
 
    var returnCode = ""; 
 
    for (var strIndex = 0; strIndex < list.length; strIndex++) { 
 
     var element = list[strIndex]; 
 
     //Push with bitwise offset (or remove the bitwise offset here and in encrypt) 
 
     returnCode += String.fromCharCode(parseInt(element) >> this.off); 
 
    } 
 
    return returnCode; 
 
    }; 
 
    stringEncrypter.encryptUrl = function(url) { 
 
    if (url.substr(url.indexOf("?") >= 0)) { 
 
     var str = url.substr(url.indexOf("?") + 1); 
 
     if (str.lastIndexOf("#") >= 0) { 
 
     str = str.substr(0, str.lastIndexOf("#")); 
 
     } 
 
     var params = str.split("&"); 
 
     for (var paramIndex = 0; paramIndex < params.length; paramIndex++) { 
 
     var param = params[paramIndex].split("="); 
 
     param[0] = this.encrypt(param[0]); 
 
     param[1] = this.encrypt(param[1]); 
 
     params[paramIndex] = param.join("="); 
 
     } 
 
     url = url.substr(0, url.indexOf("?") + 1) + params.join("&") + 
 
     (url.lastIndexOf("#") >= 0 ? url.substr(url.lastIndexOf("#")) : ""); 
 
    } 
 
    return url; 
 
    }; 
 
    stringEncrypter.decryptUrl = function(url) { 
 
    if (url.substr(url.indexOf("?") >= 0)) { 
 
     var str = url.substr(url.indexOf("?") + 1); 
 
     if (str.lastIndexOf("#") >= 0) { 
 
     str = str.substr(0, str.lastIndexOf("#")); 
 
     } 
 
     var params = str.split("&"); 
 
     for (var paramIndex = 0; paramIndex < params.length; paramIndex++) { 
 
     var param = params[paramIndex].split("="); 
 
     param[0] = this.decrypt(param[0]); 
 
     param[1] = this.decrypt(param[1]); 
 
     params[paramIndex] = param.join("="); 
 
     } 
 
     url = url.substr(0, url.indexOf("?") + 1) + params.join("&") + 
 
     (url.lastIndexOf("#") >= 0 ? url.substr(url.lastIndexOf("#")) : ""); 
 
    } 
 
    return url; 
 
    }; 
 
    return stringEncrypter; 
 
}()); 
 
//Bitwise offset. Completely optional 
 
stringEncrypter.off = 2; 
 
stringEncrypter.splitter = "|"; 
 
//Encrypt a string 
 
console.log(stringEncrypter.encrypt("Testing123")); 
 
//Decrypt a string 
 
console.log(stringEncrypter.decrypt(stringEncrypter.encrypt("Testing123"))); 
 
//Decrypt a url 
 
console.log(stringEncrypter.encryptUrl("www.test.dk?test=45")); 
 
//Encrypt a url 
 
console.log(stringEncrypter.decryptUrl(stringEncrypter.encryptUrl("www.test.dk?test=45"))); 
 
//Decrypt a url with # 
 
console.log(stringEncrypter.encryptUrl("www.test.dk?test=45#title1")); 
 
//Encrypt a url with # 
 
console.log(stringEncrypter.decryptUrl(stringEncrypter.encryptUrl("www.test.dk?test=45#title1")));