javascript使用base64将url传递的参数值进行加密后传给服务端进行处理。
通常我们在使用js进行get方式传递参数的时候需要将传递的一些参数值进行加密之后传给服务端,服务端接收之后进行解密,然后服务端在将解密出来的参数进行相关处理。
注: 下面中的www.test.com:8080是我本地自己配置的一个虚拟主机,也可以使用localhost进行访问 具体看个人喜好了。
比如: www.test.com:8080/test/test.php?param1=中文和hello_world 我想在使用javascript进行请求test.php的时候将param1的参数值进行加密传给test.php
最终生成的url地址为: www.test.com:8080/test/test.php?param1=5Lit5paH5ZKMaGVsbG9fd29ybGQ=
那么要怎么办呢? 我们可以在html页面引用一个base64.js的文件,然后使用base64.js文件提供的函数进行加密,加密完毕后传给test.php base64.js文件我会在博文最下面提供,也可以自己从网上下载。
注意: 使用base64这种加解密的字符必须转换成UTF-8编码格式。
案列:
html代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>test</title> <script type="text/javascript" src="jquery-1.7.2.js"></script> <script type="text/javascript" src="base64.js"></script> <script> $(function(){ $("#btn1").click(function(){ var b = new Base64(); var encode_str = b.encode("中文和hello_world"); //加密 //console.log('加密后:'+encode_str); /* js将encode加密后的字符串进行解密 var decode_str = b.decode(encode_str); console.log('解密后:'+decode_str); //output: 中文和hello_world */ window.location.href = 'test.php?param1='+encode_str; }) }) </script> </head> <body> <button id="btn1">点击跳转</button> </body> </html>
服务端test.php文件代码如下:
<?php //使用php内置的base64_decode()函数将js使用base64加密的字符串给解密出来 var_dump(base64_decode($_GET['param1'])); //解密结果: 中文和hello_world ?>
当然 这只是js的其中一种加解密方式,更多js加解密方式可参考以下网址
http://www.cnblogs.com/mofish/archive/2012/02/25/2367858.html
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。
精彩评论