JAVA源代码加密的方法汇总

1、使用混淆器
2、从URL资源上获取加载类
3、从本地JAR包或从数据库中动态加载类
4、类代码加密,流读入加密,然后再加载类
5、使用final防止别人恶意声明子类,以确保程序功能安全
6、使用verify,防止黑客重新编译JAVA源代码

来源:静思园

抓取/引用页面(JavaScript+Frame)

浏览3mt,无意抓取的一段Code

<script>
var dde_para = new Array();
var dde_aa   = new Array();
var dde_url  = document.location.href;
var dde_pp   = dde_url.split("?")[1];//取url参量部分
var AL      = null;
if(dde_pp!=null && dde_pp.length>0){
dde_para = dde_pp.split("&");//按&分解url参量,放入数组dde_para
}
for(i=0; dde_para!=null && i<dde_para.length;i++){
dde_aa = dde_para[i].split("=");
if(dde_aa[0] == "AL")   {
AL = unescape(dde_aa[1]);
}
//eval("var "+dde_aa[0] +"='"+dde_aa[1]+"'");
}
//alert(AL);
document.write('<frameset rows="*,0" cols="" framespacing="0" frameborder="NO" border="0">');
document.write('  <frame src="' + AL + '" name="targetwindow" >');
document.write('  <frame src="edob.htm" name="edo" scrolling="NO" noresize>');  document.write('</frameset>');document.title=AL;
</script>


存为test.htm,参数AL接收URL
引用方式
test.htm?AL=http://www.zhenhua.org

Wap 支持设置

站点属性-->Http头-->MIME映射中添加新的文件类型,具体如下:
关联文件名 内容类型
wml text/vnd.wap.wml
wmlc application/vnd.wap.wamlc
wmls text/vnd.wap.wmlscript
wmlsc application/vnd.wap.wmlscript
wbmp image/vnd.wap.wbmp

类型
ContentType = "text/vnd.wap.wml; charset=utf-8"

Wap 编码转换


/**
* gb2312转utf8,用于手机显示
* @param gbString String
* @return String
*/
public static String GB2UTF8(final String gbString)
{
if (gbString == null)
return "";
char[] utfBytes = gbString.toCharArray();
String unicodeBytes = "";
for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {
if (utfBytes[byteIndex] >= '!' && utfBytes[byteIndex] <= '~'){
unicodeBytes += utfBytes[byteIndex];
}else {
String hexB = Integer.toHexString(utfBytes[byteIndex]);
if (hexB.length() <= 2) {
  
<a id="more-7"></a>
hexB = "00" + hexB;
}
unicodeBytes = unicodeBytes + "&#x" + hexB + ";";
}
}
return unicodeBytes;
}
  
/**
* utf8 转 gb2312 ,用于手机显示
* @param strValue String
* @return String
*/
public static String UTF82GB(String strValue){
if(strValue==null || strValue.trim().length()==0)
{
return null;
}
StringBuffer strbuf = new StringBuffer();
int pos = 0;
String[] strarr = strValue.split(";");
for(int i=0; i<strarr.length; i++){
pos = strarr[i].indexOf("&#x");
if(pos >= 0){
String tmp = strarr[i].substring(pos + 3);
if (tmp.startsWith("00")) {
tmp = tmp.substring(2);
}
int l = Integer.valueOf(tmp, 16).intValue();
strbuf.append( (char) l);
}else{
strbuf.append(strarr[i]);
}
}
return strbuf.toString();
}

HTML标签过滤

javascript:|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout
|onkeypress|onkeydown|onkeyup|onerror|onfocus|onload|onresize|onunload|onblur
|meta|input|form|select|textarea|option|object