mapbar js 加解密 java 解密

mapbar js 加解密 java 解密


<script language="javascript">
//一个常量但变动后加密解密的值会变动
var strLicenseKey = 3409;//699;
//解密坐标
var str='';
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;
str+=j86T+' ';
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('这是IJSVEHZVJABFA解密后的值:<br>'+jiemi('IJSVEHZVJABFA')+'<br><br>');
document.write('=='+str+"<br>");
//加密坐标
var lon = 114.16486;
var lat = 22.31316;

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(lat,lon));   
</script>


package com.ibm.crl.gis.map.util;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang.StringUtils;

public class DecryptData {
static Integer strLicenseKey = 3409;

public static String converTO36String(Integer num) {
String[] arrayString = new String[] { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H",
"I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
"U", "V", "W", "X", "Y", "Z" };
Map<Integer, String> map = new HashMap<Integer, String>(36);
for (int i = 0; i < arrayString.length; i++) {
map.put(i, arrayString[i]);
}
return map.get(num);

}

public static class LonLat {
public Float getLon() {
return lon;
}

public Float getLat() {
return lat;
}

Float lon;
Float lat;

public LonLat(Float lon, Float lat) {
this.lat = lat;
this.lon = lon;
}
}

public static LonLat decrypt(String encryptString) {
if (StringUtils.isEmpty(encryptString)) {
return null;
}
Integer indexKey = -1;
Integer bigNum = 0;
String string36 = "";
for (int i = 0; i < encryptString.length(); i++) {
Integer charNum = Integer.parseInt(String.valueOf(encryptString
.charAt(i)), 36) - 10;

if (charNum >= 10)
charNum = charNum - 7;
string36 += converTO36String(charNum);
if (charNum > bigNum) {
indexKey = i;
bigNum = charNum;
}
}
Integer U8T = Integer.parseInt(string36.substring(0, indexKey), 16);
Integer f9v8D = Integer.parseInt(string36.substring(indexKey + 1), 16);
float[] result = new float[2];
result[0] = (U8T + f9v8D - strLicenseKey) / 2;
result[1] = (f9v8D - result[0]) / 100000;
result[0] /= 100000;
//System.out.println("lon=" + result[0]);
//System.out.println("lat=" + result[1]);
return new LonLat(result[0], result[1]);

}

public static void main(String[] args) {
decrypt("ITDEVDZUADWSR");
}
}

你可能感兴趣的:(java,apache,IBM,F#,J#)