(JS實(shí)現(xiàn))MapBar中坐標(biāo)的加密和解密的腳本
更新時(shí)間:2007年05月16日 00:00:00 作者:
因?yàn)橛幸慌笥褑柶疬@個(gè)問題,我找了下,今天就發(fā)出來看看吧,不知道說的對(duì)不對(duì)。
不過對(duì)于Mapbar這樣處理的方法我個(gè)人覺得還是很值得學(xué)習(xí)的,至少不會(huì)給你明碼的坐標(biāo)。
不知道Mapbar的朋友看了會(huì)不會(huì)找我說我那,呵呵,不過沒關(guān)系,最近想寫篇文章給你們些個(gè)人的小小的建議,覺得說的不好也無(wú)妨。忙完這陣子就寫。
下面是Mapbar中的加密和解密部分的JS,我做了簡(jiǎn)單說明了,什么36進(jìn)制又16進(jìn)制的,看的我也頭暈。
實(shí)例的結(jié)果是這樣的:
IJSDSBWVJABFA解密后的值:121.46979,31.23245
31.23245,121.46979加密后的值:IJSDSBZVJABFA
當(dāng)然你也可以用其他坐標(biāo)來測(cè)試和檢驗(yàn)。
友情提醒:Mapbar中的那個(gè)常量值可能已經(jīng)變動(dòng)了,用現(xiàn)在方法解出來的和百度的值是不一樣的。
下面的代碼復(fù)制后保存為網(wǎng)頁(yè)形式就可以看到效果。
Mapbar中的加密和解密(JS)
<script language="javascript">
//一個(gè)常量但變動(dòng)后加密解密的值會(huì)變動(dòng)
var strLicenseKey = 699;
//解密坐標(biāo)
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};
//解密坐標(biāo)的實(shí)例
document.write('這是IJSDSBWVJABFA解密后的值:<br>'+jiemi('IJSDSBWVJABFA')+'<br><br>');
//加密坐標(biāo)
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()
}
//加密實(shí)例
document.write('這是31.23245,121.46979加密后的值:<br>'+jiami('31.23245','121.46979'));
</script>
不過對(duì)于Mapbar這樣處理的方法我個(gè)人覺得還是很值得學(xué)習(xí)的,至少不會(huì)給你明碼的坐標(biāo)。
不知道Mapbar的朋友看了會(huì)不會(huì)找我說我那,呵呵,不過沒關(guān)系,最近想寫篇文章給你們些個(gè)人的小小的建議,覺得說的不好也無(wú)妨。忙完這陣子就寫。
下面是Mapbar中的加密和解密部分的JS,我做了簡(jiǎn)單說明了,什么36進(jìn)制又16進(jìn)制的,看的我也頭暈。
實(shí)例的結(jié)果是這樣的:
IJSDSBWVJABFA解密后的值:121.46979,31.23245
31.23245,121.46979加密后的值:IJSDSBZVJABFA
當(dāng)然你也可以用其他坐標(biāo)來測(cè)試和檢驗(yàn)。
友情提醒:Mapbar中的那個(gè)常量值可能已經(jīng)變動(dòng)了,用現(xiàn)在方法解出來的和百度的值是不一樣的。
下面的代碼復(fù)制后保存為網(wǎng)頁(yè)形式就可以看到效果。
Mapbar中的加密和解密(JS)
復(fù)制代碼 代碼如下:
<script language="javascript">
//一個(gè)常量但變動(dòng)后加密解密的值會(huì)變動(dòng)
var strLicenseKey = 699;
//解密坐標(biāo)
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};
//解密坐標(biāo)的實(shí)例
document.write('這是IJSDSBWVJABFA解密后的值:<br>'+jiemi('IJSDSBWVJABFA')+'<br><br>');
//加密坐標(biāo)
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()
}
//加密實(shí)例
document.write('這是31.23245,121.46979加密后的值:<br>'+jiami('31.23245','121.46979'));
</script>
相關(guān)文章
javascript中數(shù)組(Array)對(duì)象和字符串(String)對(duì)象的常用方法總結(jié)
這篇文章主要介紹了javascript中數(shù)組(Array)對(duì)象和字符串(String)對(duì)象的常用方法,結(jié)合實(shí)例形式總結(jié)分析了javascript中關(guān)于數(shù)組和字符串的常用函數(shù)與使用技巧,需要的朋友可以參考下2016-12-12javascript級(jí)聯(lián)下拉列表實(shí)例代碼(自寫)
javascript下拉菜單想必大家在瀏覽網(wǎng)頁(yè)的時(shí)候都會(huì)看到吧,已不是那么陌生了,本文介紹使用javascript實(shí)現(xiàn)級(jí)聯(lián)下拉列表實(shí)例,感興趣的朋友可以參考下哈,希望對(duì)你有所幫助2013-05-05JS實(shí)現(xiàn)隨機(jī)生成10個(gè)手機(jī)號(hào)的方法示例
這篇文章主要介紹了JS實(shí)現(xiàn)隨機(jī)生成10個(gè)手機(jī)號(hào)的方法,涉及javascript數(shù)值運(yùn)算與隨機(jī)數(shù)操作相關(guān)使用技巧,需要的朋友可以參考下2018-12-12- 有時(shí)在顯示某段文字的時(shí)候,可能會(huì)太長(zhǎng),影響我們頁(yè)面的顯示效果。如果僅是英文,那么我們可以用String.substring(start, end)函數(shù)就已經(jīng)夠用了。但是通常我們都會(huì)遇到既有英文,又有漢字的情況。而漢字是占用2個(gè)字節(jié)的,如果用String.substring(start, end)截取字符串的話,會(huì)發(fā)現(xiàn)漢字截取后比英文截取后個(gè)數(shù)雖然相同,但是長(zhǎng)度還是長(zhǎng)出去不少(具體要視字符個(gè)數(shù)來決定)2013-04-04
利用原生JavaScript實(shí)現(xiàn)造日歷輪子實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于如何利用原生JavaScript實(shí)現(xiàn)造日歷輪子的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05javascript排序函數(shù)實(shí)現(xiàn)數(shù)字排序
這篇文章主要介紹了javascript排序函數(shù)實(shí)現(xiàn)數(shù)字排序的相關(guān)資料,附上示例,需要的朋友可以參考下2015-06-06微信小程序movable view移動(dòng)圖片和雙指縮放實(shí)例代碼
movable-area是微信小程序的新組件,可以用來移動(dòng)視圖區(qū)域movable-view。這篇文章主要介紹了微信小程序movable view移動(dòng)圖片和雙指縮放實(shí)例代碼,需要的朋友可以參考下2017-08-08