【发布时间】:2012-07-17 05:24:42
【问题描述】:
如何在war文件中设置密码???我可以在war文件中设置IP地址,mac地址然后在部署这个war之前检查IP地址,mac地址吗?如果这些地址正确然后部署war文件?
【问题讨论】:
如何在war文件中设置密码???我可以在war文件中设置IP地址,mac地址然后在部署这个war之前检查IP地址,mac地址吗?如果这些地址正确然后部署war文件?
【问题讨论】:
在war中进行IP地址检查,mac地址检查等,因此即使部署了war,如果ip或mac地址不正确,它也将不起作用。即....像那样更改战争中的代码
下面给出了一个获取IP地址和MAC地址的示例java程序
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
public class MACandIP{
public static void main(String[] args){
InetAddress ipAddress;
byte[] macAddress;
try {
ipAddress = InetAddress.getLocalHost();
System.out.println("IP address =" + ipAddress.getHostAddress());
NetworkInterface networkInt = NetworkInterface.getByInetAddress(ipAddress);
macAddress = networkInt.getHardwareAddress();
StringBuilder strBld = new StringBuilder();
System.out.print("MAC address = ");
for (int i = 0; i < macAddress.length; i++) {
strBld.append(String.format("%02X%s", macAddress[i], (i < macAddress.length - 1) ? "-" : ""));
}
System.out.println(strBld.toString());
//in above code assume you got MAC address as 81-7B-39-C5-A6-D4
if(strBld.toString().equalsIgnoreCase("81-7B-39-C5-A6-D4")){
// mac is correct
}
} catch (UnknownHostException excep) {
excep.printStackTrace();
} catch (SocketException exce){
exce.printStackTrace();
}
}
}
【讨论】:
我建议你不要在war文件中进行所有这些验证,毕竟这只是一个文件,如果有人想替换它,无论你在war中进行什么验证和检查,他都可以替换文件。
您需要做的是编写一个部署脚本,为它提供要部署的新战争,然后该脚本会执行所有验证并替换战争文件。
【讨论】:
WAR 格式和 servlet API 在部署前不支持任何形式的保护。此外,任何纯软件方案都可以被破解。
您检查的有效许可证密钥和“没有有效许可证的代码不受支持”的组合很可能是您所期望的最佳结果。
【讨论】: