1

How do I stop someone from copying the application i am making in java in an other pc ? i want to sell it only for one pc

I am not selling it on the internet , is there any way to do that by the disk SN or using USB Flash disk SN of the client as a key for the app ?

I am using mysql as back-end for my application and the platform is Windows.

Is there a way to provide this security ?

Adel Bachene
  • 974
  • 1
  • 14
  • 34
  • 1
    Have you searched the web for this already? When I search I find a number of options, with the caveat that without a lot of effort/money you'll stop only the weakest of attempts. Is it really worth it? – Dave Newton Aug 08 '12 at 17:57
  • 2
    Did you really create the next incarnation of MS-Word? Perhaps you should concentrate not so much on selling the software, but on selling the value of your services associated with the software. – Hovercraft Full Of Eels Aug 08 '12 at 17:58
  • 1
    Well, the way Microsoft handles this is by issuing a unique CD key to each purchase/license, and then registering each installation (identified by a "system ID") against a validation server on the internet. But my suggestion to you would be to first worry about making a great product that's worth stealing, and then worry about how to implement copy protection. Also, if you're distributing MySQL with your software, I hope you've reviewed _their_ license. – Scott Aug 08 '12 at 17:59
  • 1
    I feel that might be difficult because thousands of developers dedicated _lot_ of their time to specifically make portability possible. So, they might have ignored this aspect completely. – Prasanth Aug 08 '12 at 18:00

2 Answers2

1

Assuming the PC is connected to the internet, you could read the PC MAC address when starting the application and send a request to your server to check if that MAC address is authorised.

But that means that every time the user changes his PC you need to update your records.

assylias
  • 321,522
  • 82
  • 660
  • 783
  • 2
    And the MAC could be spoofed _just like that_ – Prasanth Aug 08 '12 at 17:57
  • 1
    @goldenparrot If someone really wants to find his way, he will. – assylias Aug 08 '12 at 17:58
  • @assylias sir about the mac address , how i can test it and give the client pc an autorisation to start working ? – Adel Bachene Aug 08 '12 at 18:04
  • @user1417996 Have a look at [this post](http://stackoverflow.com/questions/33960/how-do-you-get-the-ethernet-address-using-java) to find the MAC address. And have a look at [this other one](http://stackoverflow.com/questions/307932/changing-the-mac-address-in-vista-broadcom-adapter) as to how your users could change their mac address. – assylias Aug 08 '12 at 18:07
  • @assylias sir who going to buy my application they don't know how to change the MAC adresse due to that i want to do it , Thank you sir – Adel Bachene Aug 08 '12 at 18:10
  • @assylias can i do that with the disk Serial Number ?? – Adel Bachene Aug 08 '12 at 18:11
  • 1
    @user1417996 Put it simply, licensing restrictions is a never-ending fight. You better be willing to put in an endless effort into it - especially if your product is any good. – Mysticial Aug 08 '12 at 18:13
  • @user1417996 Have a look [at this post](http://stackoverflow.com/questions/5482947/how-to-get-hard-disk-serial-number-using-java). – assylias Aug 08 '12 at 18:18
  • @Mysticial Pffffff I want my 15 ;-) – assylias Aug 08 '12 at 18:23
  • @assylias: looks like you got it, congrats! – Hovercraft Full Of Eels Aug 08 '12 at 19:59
0

I reckon the only way you'll be able to achieve this level of control is if you move your application into a cloud-based service such as Amazon Web Services. That way, your clients have to subscribe to gain access to your application, and you can disable access if payment stops.

Bobulous
  • 12,967
  • 4
  • 37
  • 68