我的url里面需要传递一个参数比如<a href="a.jsp?kk=<%=name%>" 怎么加密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的url里面需要传递一个参数比如<a href="a.jsp?kk=<%=name%>" 怎么加密相关的知识,希望对你有一定的参考价值。

这个参数会显示在浏览器地址栏里 想对这个参数加密 怎么加密?在另一个页面又怎么接收?

加密JS:---------------------------------------------------------------------

function encrypt(str, pwd)

//判断密钥是否为空
if(pwd == null || pwd.length <= 0)

alert("请输入密钥");
return null;


//得到密钥的字符串的Unicode码
var prand = "";
for(var i=0; i<pwd.length; i++)

prand += pwd.charCodeAt(i).toString();
//alert(prand);


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));//返回从字符串转换得到的整数. (charAt返回 String 对象的指定索引处的字符。)
var incr = Math.ceil(pwd.length / 2);//返回数的上限
var modu = Math.pow(2, 31) - 1;//返回基数表达式的指定次幂的值
if(mult < 2)

alert("您输入的密钥过于简单或者是长度太短");
return null;


var salt = Math.round(Math.random() * 1000000000) % 100000000; //Math.round是四舍五入函数。 Math.random是返回一个伪随机数(0到1之间的double型数)
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;


解密JS:---------------------------------------------------------------------

function decrypt(str, pwd,stu)

if(str == null || str.length < 8)

alert("您输入的内容过短,请重新输入");
return;

if(pwd == null || pwd.length <= 0)

alert("请输入密钥");
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));
//alert(enc_chr);
enc_str += String.fromCharCode(enc_chr);
//alert(enc_str);
prand = (mult * prand + incr) % modu;


return enc_str;


encrypt:加密方法。
str:你需要加密的字符串,pwd 密匙 返回的是一串加密的密文。
decrypt:解密方法。使用密匙+密文,得到原来解密的值
参考技术A 1。首先你要局部刷新,可以通过框架来实现,就是将表格放入一个<Iframe>中,当然你要新建一个JSP页面把表格写在那个页面中,然后通过<Iframe >的src连接到那个页面
2。然后你说要首先显示第一页,这个就是你在放表格的那个页面读出来第一页,SQL语句是:
"select top 10 * from 表名 where 主键列名 not in(select top "+10*(你要查的页码-1)+" 主键列名 from 表名)---如何反排,那么加上order by id desc(子查询也加)

3。最后你要实现翻页,由于是框架,自然局部刷新,直接点超链接让你的页码+1查询出来。
4。表格不能画出来,里面的tr td标签写在JSP小脚本的循环当中,进行添加。

页面之间传递数据

最近在写公司HR微信公众号,其中某个模块需要A.html传递一个参数Data给B.html,然后B.html通过参数Data发送Ajax。整理一下搜寻到方法;

方法一:通过location给页面传递数据;附上代码。

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>页面A</title>
</head>
<body>
    <div style="width:100px;height:100px;background: #f00;" onclick="dd(‘xyd‘)"></div>    
</body>
<script>
    function dd(elm){
        var GOUrl="GO.html?cs="+elm;
        location.href=GOUrl;
    }
</script>

</html>
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>页面B</title>
</head>
<body>
    <h1>一个有梦想的咸鸭蛋</h1>
</body>
<script>
    var locationUrl=location.href
    var shuju=window.location.href.split("=")[1];
    console.log(shuju);
</script>

</html>
方法二 正则 (原博主强烈推荐)

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <h1>一个有梦想的咸鸭蛋</h1>
</body>
<script>
function GetQueryString(name)
{
     var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
     var r = window.location.search.substr(1).match(reg);
     if(r!=null){
         return  unescape(r[2])
     }else{
         return null
     };
}
//    console.log(GetQueryString("参数名称1"));
//    console.log(GetQueryString("参数名称2"));
//    console.log(GetQueryString("参数名称3"));
//是否有参数
var myurl=GetQueryString("cs");
if(myurl !=null && myurl.toString().length>1)
{
    console.log(GetQueryString("cs"));
}
</script>

</html>
通过web缓存一样可以达到这样的效果,不确定这样是否可以,就不附上代码了

[原博主链接]

本文转载于:猿2048?https://www.mk2048.com/blog/blog.php?id=hha0j2j0h0j

以上是关于我的url里面需要传递一个参数比如<a href="a.jsp?kk=<%=name%>" 怎么加密的主要内容,如果未能解决你的问题,请参考以下文章

将参数传递到新 URL

封装一个方法:把URL参数解析为一个对象,来获取地址栏url里面的传递的参数。

PHP里面怎么根据URL参数得到制定数组?

页面之间传递数据

这种接口怎么调用?怎么传递参数?

Html中怎么把url传递过来的参数放在一个p标签中?