javascript将url中的参数加密解密代码

今天在做一个老项目时,遇到一个需求,在javascript将url中的参数加密解密,从网上找发现了这段有用的代码:

代码如下:

<SCRIPT LANGUAGE="JavaScript">   
<!-- Begin   
function Encrypt(str, pwd) {   
    if(str=="")return "";   
    str = escape(str);   
    if(!pwd || pwd==""){ var pwd="1234"; }   
    pwd = escape(pwd);   
      if(pwd == null || pwd.length <= 0) {   
        alert("Please enter a password with which to encrypt the message.");   
          return null;   
      }   
      var prand = "";   
      for(var I=0; I<pwd.length; I++) {   
        prand += pwd.charCodeAt(I).toString();   
      }   
      var sPos = Math.floor(prand.length / 5);   
      var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos*2) + prand.charAt(sPos*3) + prand.charAt(sPos*4) + prand.charAt(sPos*5));   
      var incr = Math.ceil(pwd.length / 2);   
      var modu = Math.pow(2, 31) - 1;   
      if(mult < 2) {   
        alert("Algorithm cannot find a suitable hash. Please choose a different password. /nPossible considerations are to choose a more complex or longer password.");   
        return null;   
      }   
      var salt = Math.round(Math.random() * 1000000000) % 100000000;   
      prand += salt;   
      while(prand.length > 10) {   
        prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString();   
      }   
      prand = (mult * prand + incr) % modu;   
    var enc_chr = "";   
    var enc_str = "";   
    for(var I=0; I<str.length; I++) {   
        enc_chr = parseInt(str.charCodeAt(I) ^ Math.floor((prand / modu) * 255));   
        if(enc_chr < 16) {   
            enc_str += "0" + enc_chr.toString(16);   
        }else   
            enc_str += enc_chr.toString(16);   
        prand = (mult * prand + incr) % modu;   
    }   
      salt = salt.toString(16);   
      while(salt.length < 8)salt = "0" + salt;   
    enc_str += salt;   
    return enc_str;   
}   
function Decrypt(str, pwd) {   
    if(str=="")return "";   
    if(!pwd || pwd==""){ var pwd="1234"; }   
    pwd = escape(pwd);   
      if(str == null || str.length < 8) {   
        alert("A salt value could not be extracted from the encrypted message because it's length is too short. The message cannot be decrypted.");   
        return;   
      }   
      if(pwd == null || pwd.length <= 0) {   
        alert("Please enter a password with which to decrypt the message.");   
        return;   
      }   
      var prand = "";   
      for(var I=0; I<pwd.length; I++) {   
        prand += pwd.charCodeAt(I).toString();   
      }   
      var sPos = Math.floor(prand.length / 5);   
      var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos*2) + prand.charAt(sPos*3) + prand.charAt(sPos*4) + prand.charAt(sPos*5));   
      var incr = Math.round(pwd.length / 2);   
      var modu = Math.pow(2, 31) - 1;   
      var salt = parseInt(str.substring(str.length - 8, str.length), 16);   
      str = str.substring(0, str.length - 8);   
      prand += salt;   
      while(prand.length > 10) {   
        prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString();   
      }   
      prand = (mult * prand + incr) % modu;   
      var enc_chr = "";   
      var enc_str = "";   
    for(var I=0; I<str.length; I+=2) {   
        enc_chr = parseInt(parseInt(str.substring(I, I+2), 16) ^ Math.floor((prand / modu) * 255));   
        enc_str += String.fromCharCode(enc_chr);   
        prand = (mult * prand + incr) % modu;   
    }   
    return unescape(enc_str);   
}   
//  End -->   
</script>

以后碰到加密解密问题,直接将上述代码写成一个js文件,就搞定。省事了。。。。

(0)

相关推荐

  • jsp中URL传递中文参数的处理方法

    在页面的url中使用encodeURI(encodeURI(中文)),对中文进行编码,并在服务器的java程序中使用URLDecoder.decode(中文, "UTF-8")进行解码即可; 如果url中需要传递+.#.?等特殊符号,可以使用encodeURIComponent(encodeURIComponent(中文)),服务器解码方法跟encodeURI的解码相同.

  • js将json格式的对象拼接成复杂的url参数方法

    var parseParam=function(param, key){ varparamStr=""; if(paraminstanceof String||param instanceof Number||param instanceof Boolean){ paramStr+="&"+key+"="+encodeURIComponent(param); }else{ $.each(param,function(i){ vark=ke

  • js的form表单提交url传参数(包含+等特殊字符)的两种解决方法

    方法一:(伪装form表单提交) linkredwin = function(A,B,C,D,E,F,G){ var formredwin = document.createElement("form"); formredwin.method = 'POST'; document.body.appendChild(formredwin); formredwin.action = "http://www.A.com/A.wiki?A=" +encodeURI(A) +

  • JavaScript获取Url里的参数

    最近开发的项目需要用JavaScript读取Url字符串里的参数的值 通过查找资料和自己的试验,总算成功 脚本如下: 复制代码 代码如下: <script type="text/javascript">       function GetRequest(strName)      {            var strHref = window.location.href; //获取Url字串            var intPos = strHref.indexO

  • JS根据key值获取URL中的参数值及把URL的参数转换成json对象

    不废话了,直接贴代码了,通过示例一讲解JS根据key值获取URL中的参数值及把URL的参数转换成json对象,示例二讲解js获取url传递参数,具体内容请看下文 示例一: //把url的参数部分转化成json对象 parseQueryString: function (url) { var reg_url = /^[^\?]+\?([\w\W]+)$/, reg_para = /([^&=]+)=([\w\W]*?)(&|$|#)/g, arr_url = reg_url.exec(url

  • JS解析url查询参数的简单代码

    废话不多说了,直接给大家贴代码了,具体代码如下所述: var path = 'www.u.com/home?id=2&type=0&dtype=-1'; function parseUrl(url){ var result = []; var query = url.split("?")[1]; var queryArr = query.split("&"); queryArr.forEach(function(item){ var obj

  • nodejs实现获取当前url地址及url各种参数值

    复制代码 代码如下: //需要使用的模块 http   url 当前url   http://localhost:8888/select?aa=001&bb=002 var http = require('http'); var URL = require('url'); http.createServer(function(req, res){    var arg = url.parse(req.url).query;  //方法一arg => aa=001&bb=002   

  • 四种参数传递的形式——URL,超链接,js,form表单

    什么时候用GET,  查,删 什么时候用POST,增,改  (特列:登陆用Post,因为不能让用户名和密码显示在URL上) 4种get传参方式 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>&l

  • JavaScript获得url查询参数的方法

    本文实例讲述了JavaScript获得url查询参数的方法.分享给大家供大家参考.具体实现方法如下: function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="

  • javascript将url中的参数加密解密代码

    今天在做一个老项目时,遇到一个需求,在javascript将url中的参数加密解密,从网上找发现了这段有用的代码: 复制代码 代码如下: <SCRIPT LANGUAGE="JavaScript">    <!-- Begin    function Encrypt(str, pwd) {        if(str=="")return "";        str = escape(str);        if(!pwd

  • 使用JavaScript获取URL中的参数(两种方法)

    本文给大家分享两种方法使用js获取url中的参数,其中方法二是使用的正则表达式方法,大家可以根据需要选择比较好的方法,废话不多说了,直接看详细介绍吧. 方法一: //取url参数 var type = request("type") function request() { var query = location.search; var paras = arguments[0]; if (arguments.length == 2) { query = arguments[1]; }

  • JavaScript获取URL中参数querystring的方法详解

    一. 获取url的querystring参数 获取url的querystring参数的两种方法如下: 1.1 方法一:正则匹配 //获取url中的参数 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", i); // 匹配目标参数 var result = window.location.search.substr(1).

  • Spring Boot 接口参数加密解密的实现方法

    因为有小伙伴刚好问到这个问题,松哥就抽空撸一篇文章和大家聊聊这个话题. 加密解密本身并不是难事,问题是在何时去处理?定义一个过滤器,将请求和响应分别拦截下来进行处理也是一个办法,这种方式虽然粗暴,但是灵活,因为可以拿到一手的请求参数和响应数据.不过 SpringMVC 中给我们提供了 ResponseBodyAdvice 和 RequestBodyAdvice,利用这两个工具可以对请求和响应进行预处理,非常方便. 所以今天这篇文章有两个目的: 分享参数/响应加解密的思路. 分享 Response

  • 用javascript替换URL中的参数值示例代码

    今天遇到一个需要用javascript将url中的某些参数替换的需求,想起了不久前从网上淘到了一个parseUrl函数,正好可以借此实现,代码整理如下: 复制代码 代码如下: //分析url function parseURL(url) {     var a = document.createElement('a');     a.href = url;     return {         source: url,         protocol: a.protocol.replace

  • 从URL中提取参数与将对象转换为URL查询参数的实现代码

    一.从URL中提取参数 有下列字符串: var linkURL = 'http://localhost:8080/String/string_6.html?昵称=小西山子&age=24#id1'; 对于一个真实的URL地址,可以用js来读取location中的相关信息来获得某些信息,下面列举一些: 复制代码 代码如下: location.origin : http://localhost[域] location.pathname : /project_js/Javascript/js_basic

  • JavaScript操作 url 中 search 部分方法函数

    前言 首先,我们需要知道什么是 search , search 是 window.location 的一个属性.举个例子: 首先,我们这里有一个 url,是 http://www.a.com/list/2.html?page=2&color=4&size=3#pic. 我们访问访问这个地址,打开控制台,输入window.location,会得到如下图的结果 如上,我们要操作的就是上图中方框框出来的这个部分. 为什么要操作这个? 例如,我在第二页,需要跳转到第三页,就需要把上面的 page=

  • Android数据传输中的参数加密代码示例

    Android开发中,难免会遇到需要加解密一些数据内容存到本地文件.或者通过网络传输到其他服务器和设备的问题,但并不是使用了加密就绝对安全了,如果加密函数使用不正确,加密数据很容易受到逆向破解攻击.还有很多开发者没有意识到的加密算法的问题. 1.数据传输 1).http请求中,最常用的方法有两种:get和post:一般post请求适合做提交,而get请求适合做请求数据 2).数据的加密,大概有三种常用的:AES,DES,Base64 2.Base64加密 这里使用的aes加密,然后再将字符串使用

  • 浅析JS获取url中的参数实例代码

    js获取url中的参数代码如下所示,代码简单易懂,附有注释,写的不好还请见谅! function UrlSearch() { var name, value; var str = location.href; //取得整个地址栏 var num = str.indexOf("?") str = str.substr(num + 1); //取得所有参数 stringvar.substr(start [, length ] var arr = str.split("&&

  • php解析url并得到url中的参数及获取url参数的四种方式

    下面一段代码是php解析url并得到url中的参数,代码如下所示: <?php $url = 'http://www.baidu.com/index.php?m=content&c=index&a=lists&catid=6&area=0&author=0&h=0&region=0&s=1&page=1'; $arr = parse_url($url); var_dump($arr); $arr_query = convertU

随机推荐