当前位置: 首页 > 图文教程 > 网络编程 > Javascript > (JS实现)MapBar中坐标的加密和解密的脚本

Javascript
解决FLASH需要点击激活的代码
取得一定长度的内容,处理中文
写了几个类,希望对大家有用。
Javascript MD4
Code:findPosX 和 findPosY
关于base64加密/解密
Javascript SHA-1:Secure Hash Algorithm
关于arguments,callee,caller等的测试
URI、URL和URN之间的区别与联系
firefox中JS读取XML文件
FCK调用方法..
在 IE 中调用 javascript 打开 Excel 表
网页设计常用的一些技巧
优化JavaScript脚本的性能的几个注意事项
JS暴虐查找法
另类网页中添加运行效果
在window.setTimeout方法中传送对象
js版本A*寻路算法
用js重建星际争霸
在table中插入多行,能使用与insertAdjacentHTML相似的功能吗?

Javascript 中的 (JS实现)MapBar中坐标的加密和解密的脚本


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 230 ::
收藏到网摘: n/a

因为有一朋友问起这个问题,我找了下,今天就发出来看看吧,不知道说的对不对。
不过对于Mapbar这样处理的方法我个人觉得还是很值得学习的,至少不会给你明码的坐标。
不知道Mapbar的朋友看了会不会找我说我那,呵呵,不过没关系,最近想写篇文章给你们些个人的小小的建议,觉得说的不好也无妨。忙完这阵子就写。
下面是Mapbar中的加密和解密部分的JS,我做了简单说明了,什么36进制又16进制的,看的我也头晕。
实例的结果是这样的:
IJSDSBWVJABFA解密后的值:121.46979,31.23245
31.23245,121.46979加密后的值:IJSDSBZVJABFA
当然你也可以用其他坐标来测试和检验。
友情提醒:Mapbar中的那个常量值可能已经变动了,用现在方法解出来的和百度的值是不一样的。
下面的代码复制后保存为网页形式就可以看到效果。
Mapbar中的加密和解密(JS)
复制代码 代码如下:

<script language="javascript">
//一个常量但变动后加密解密的值会变动
var strLicenseKey = 699;
//解密坐标
function jiemi(meT){
var W7pj=-1;
var I524S=0;
var qk_X='';
for(var i=0;i<meT.length;i++){var j86T=parseInt(meT.charAt(i),36)-10;
if(j86T>=10)j86T=j86T-7;qk_X+=(j86T).toString(36);
if(j86T>I524S){W7pj=i;I524S=j86T}}var U8T=parseInt(qk_X.substring(0,W7pj),16);
var f9v8D=parseInt(qk_X.substring(W7pj+1),16);
var H1433=new Array();
H1433[0]=(U8T+f9v8D-parseInt(strLicenseKey))/2;
H1433[1]=(f9v8D-H1433[0])/100000.0;
H1433[0]/=100000.0;
return H1433};
//解密坐标的实例
document.write('这是IJSDSBWVJABFA解密后的值:<br>'+jiemi('IJSDSBWVJABFA')+'<br><br>');
//加密坐标
function jiami(e53,B92_)
{
var WVd94=parseInt(parseFloat(e53)*100000);
var j7_2=parseInt(parseFloat(B92_)*100000);
var rpB=(j7_2-WVd94+parseInt(strLicenseKey)).toString(16);
var ie9=(j7_2+WVd94).toString(16);
var H1433='';
for(var i=0;i<rpB.length;i++)
{
var k6A36=parseInt(rpB.charAt(i),16);
H1433+=(((k6A36>=10)?(k6A36+7):k6A36)+10).toString(36)
}
H1433+='z';
for(var i=0;i<ie9.length;i++)
{
var k6A36=parseInt(ie9.charAt(i),16);
H1433+=(((k6A36>=10)?(k6A36+7):k6A36)+10).toString(36)
}
return H1433.toUpperCase()
}
//加密实例
document.write('这是31.23245,121.46979加密后的值:<br>'+jiami('31.23245','121.46979'));
</script>