日期:2014-05-18  浏览次数:20824 次

对于j2ee项目的保护,怎么防止客户随意复制
请问大家,项目完成后部署到客户的服务器,那么通过什么方式防止客户随意复制项目到别的服务器呢?

比如一个人买了我们的项目,然后复制了N多份分给别人用,那我们不是亏死了。这种问题怎么解决呢?
------解决方案--------------------
制作一个CDKey之类的东西,验证你们的服务器,而且加密算法要严格。
------解决方案--------------------
CDkey,不谢
------解决方案--------------------
通常是与用户现有服务器的数个短期不会被更换的硬件的编号进行邦定,这些硬件编号是全球唯一的,所以这样就可以确保用户复制的副本只能在这台服务器上运作。
------解决方案--------------------
跟他的mac地址绑定
------解决方案--------------------
同意4楼的说法  和他的mac地址绑定 就ok
------解决方案--------------------
项目本身 采用封包  比如对源码进行加密  然后可以绑mac之类的 
------解决方案--------------------
或者 先提供在线服务  先试用 付钱签协议 在协议中规定各方利益
------解决方案--------------------
加密狗或者license
------解决方案--------------------
就跟软件的注册码一样
------解决方案--------------------
提供license。
------解决方案--------------------
怎么这么小肚鸡肠?

现在这年头如果再靠卖软件营生的话,那离饿死也不远了,现在都是靠卖服务!

我们这神奇的国度也很搞笑,用着盗版的东西做出来的东西,还想不让别人去盗版!
------解决方案--------------------

------解决方案--------------------
引用:
怎么这么小肚鸡肠?

现在这年头如果再靠卖软件营生的话,那离饿死也不远了,现在都是靠卖服务!

我们这神奇的国度也很搞笑,用着盗版的东西做出来的东西,还想不让别人去盗版!

同感
------解决方案--------------------
 卖服务
------解决方案--------------------
微软都搞不定盗版,何况你!
------解决方案--------------------
引用:
怎么这么小肚鸡肠?

现在这年头如果再靠卖软件营生的话,那离饿死也不远了,现在都是靠卖服务!

我们这神奇的国度也很搞笑,用着盗版的东西做出来的东西,还想不让别人去盗版!

说了实话
------解决方案--------------------
// 获取MAC地址的方法
private static String getMACAddress(InetAddress ia) throws Exception {
// 获得网络接口对象(即网卡),并得到mac地址,mac地址存在于一个byte数组中。
byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
// 下面代码是把mac地址拼装成String
StringBuffer sb = new StringBuffer();
for (int i = 0; i < mac.length; i++) {
if (i != 0) {
sb.append("-");
}
// mac[i] & 0xFF 是为了把byte转化为正整数
String s = Integer.toHexString(mac[i] & 0xFF);
sb.append(s.length() == 1 ? 0 + s : s);
}
// 把字符串所有小写字母改为大写成为正规的mac地址并返回
return sb.toString().toUpperCase();
}

用MAC 地址,然后用RAS 加密

------解决方案--------------------
  String path=Thread.currentThread().getContextClassLoader().getResource(".").getPath();
        BufferedReader in= 
          new BufferedReader(new InputStreamReader(new FileInputStream(path+"Lh_AIG_Enc_RSA.dat")));
        String ctext=in.readLine();
        BigInteger c=new BigInteger(ctext);
        //获取私钥