создать приложение для предоставления уникального идентификатора каждому запросу клиента - PullRequest
0 голосов
/ 06 октября 2011

Что я знаю, так это то, что я хочу создать приложение, работающее в системе Linux, которое будет собирать информацию о системе, такую ​​как MAC-адрес, идентификаторы hd и cpu, версию ОС и имя компьютера, а также метку времени первого выполнения и хэш все это в один id-ключ. Затем он отправит этот идентификатор на сервер, где он будет сохранен для последующей аутентификации. Теперь каждый раз, когда клиент делает запрос, приложение генерирует id-ключ и присоединяет его к запросу. Затем сервер будет аутентифицироваться.

Что я не знаю а) Должен ли я создать исполняемое приложение для настольного компьютера или веб-приложение, работающее на локальном хосте клиента, и как каждое из них будет работать? б) Какую технологию использовать, имея в виду платформу для разработки (php?) c) Как приложение будет прикреплять идентификатор к каждому клиентскому запросу и г) Есть ли что-нибудь готовое, что я могу попробовать (еще не нашел) Заранее благодарим, в этом есть крайний срок, и любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 03 октября 2013

@ Статис Г.

Для получения информации о клиенте вы можете развернуть апплет на компьютере клиента.

  import java.applet.Applet;
  import java.applet.Applet;
  import java.net.InetAddress;
  import java.net.NetworkInterface;
  import java.net.SocketException;


  public class app extends Applet{

  public String macAddr="";

  public void init()
  {
  try
    {
        System.out.println("Start");
        InetAddress ip = InetAddress.getLocalHost();
        System.out.println((new StringBuilder("Current IP address:"+ip.toString())));
        NetworkInterface network = NetworkInterface.getByInetAddress(ip);
        byte mac[] = network.getHardwareAddress();
        System.out.println("mac : "+mac.toString());
        System.out.print("Current MAC address : ");
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < mac.length; i++)
            sb.append(String.format("%02X%s", new Object[] {
                    Byte.valueOf(mac[i]), i >= mac.length - 1 ? "" : "-"
            }));

        System.out.println(sb.toString());
        macAddr=String.valueOf(sb);
        System.out.println("okay good");

    }
    catch(SocketException e)

    {
        macAddr=e.toString();
        e.printStackTrace();
        System.out.println("not good");
    }
    catch (Exception e) {
        macAddr=e.toString();
        e.printStackTrace();
        System.out.println("bad good");
    }    
   }
   }

Проблема, с которой я столкнулся после создания этого апплета, заключается в том [что он работал нормально, когда я запускаю его на компьютере локально (запустить приложение)), но это не работает на сервере ``, так как вы должны подписать свой jar

Keytool -genkey -alias signFiles -keystore compstore -keypass KEYPASS -dname "cn = XYZ" -storepass KEY -действительность 125000 jarsigner -keystore compstore -storepass PASS -keypass KEYPASS appletname.jar signFiles

После этого это работало, но не гладко ... как каждый раз, когда я запускаю его. Браузер запрашивает разрешение. что не хорошо. Я надеюсь, что мой опыт помогает

0 голосов
/ 06 октября 2011

Доступны хеш-функции для генерации уникальных ключей, однако вы можете захотеть создать ключи на своем сервере, чтобы люди не могли пересмотреть вашу хеш-функцию.Несколько лет назад мой друг снял защиту от копирования в играх, декомпилировав исходный код и посмотрев функции серийного номера.Если вы разместите свою функцию на клиенте, они могут ее изменить.

...