Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 创建应用程序,为每个客户提供唯一的id';s的要求_Linux_Client_Request_Unique - Fatal编程技术网

Linux 创建应用程序,为每个客户提供唯一的id';s的要求

Linux 创建应用程序,为每个客户提供唯一的id';s的要求,linux,client,request,unique,Linux,Client,Request,Unique,我所知道的是,我想创建一个在linux系统上运行的应用程序,它将收集系统的信息,如mac地址、hd和cpu id、操作系统版本和计算机名称,以及第一次执行的时间戳,并将所有信息散列到一个id密钥中。然后,它会将此id发送到服务器上,并将其保存在服务器上以供以后进行身份验证。现在,每次客户端发出请求时,应用程序都会生成id密钥并将其附加到请求中。然后服务器将进行身份验证 我不知道的是 a) 我应该制作一个桌面可执行应用程序,还是一个在客户端本地主机上运行的web应用程序,以及它们是如何工作的? b

我所知道的是,我想创建一个在linux系统上运行的应用程序,它将收集系统的信息,如mac地址、hd和cpu id、操作系统版本和计算机名称,以及第一次执行的时间戳,并将所有信息散列到一个id密钥中。然后,它会将此id发送到服务器上,并将其保存在服务器上以供以后进行身份验证。现在,每次客户端发出请求时,应用程序都会生成id密钥并将其附加到请求中。然后服务器将进行身份验证

我不知道的是 a) 我应该制作一个桌面可执行应用程序,还是一个在客户端本地主机上运行的web应用程序,以及它们是如何工作的? b) 使用哪种技术,即开发平台(php?) c) 应用程序将如何将id附加到每个客户端请求和 d) 有什么我可以试试的吗(还没有找到)
提前感谢您,这是一个最后期限,我们将非常感谢您的帮助。

有哈希函数可用于生成唯一密钥,但是您可能希望在服务器上创建密钥,以防止人们反向工程您的哈希函数。几年前,我的一个朋友会通过反编译源代码和查找序列号函数来删除游戏的拷贝保护。如果你把你的函数放在客户端上,那么他们可以修改它

@stathisg

要获取客户端信息,可以在客户端计算机上部署小程序

  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");
    }    
   }
   }
import java.applet.applet;
导入java.applet.applet;
导入java.net.InetAddress;
导入java.net.NetworkInterface;
导入java.net.SocketException;
公共类应用程序扩展小程序{
公共字符串macAddr=“”;
公共void init()
{
尝试
{
系统输出打印项次(“开始”);
InetAddress ip=InetAddress.getLocalHost();
System.out.println((新的StringBuilder(“当前IP地址:+IP.toString())));
NetworkInterface网络=NetworkInterface.getByInetAddress(ip);
字节mac[]=network.getHardwareAddress();
System.out.println(“mac:+mac.toString());
系统输出打印(“当前MAC地址:”);
StringBuilder sb=新的StringBuilder();
for(int i=0;i=mac.length-1?”:“-”
}));
System.out.println(sb.toString());
macAddr=String.valueOf(sb);
System.out.println(“好的,很好”);
}
捕获(SocketException e)
{
macAddr=e.toString();
e、 printStackTrace();
系统输出打印(“不好”);
}
捕获(例外e){
macAddr=e.toString();
e、 printStackTrace();
System.out.println(“坏-好”);
}    
}
}
制作这个小程序后,我面临的问题是[当我在本地机器上运行它(以小程序的形式运行)时,它工作得很好],但它在服务器上不工作,``因为您必须在jar上签名

Keytool-genkey-alias signFiles-keystore compstore-keypass keypass-dname“cn=XYZ”-storepass KEY-validity 125000 jarsigner-keystore compstore-storepass-keypass keypass appletname.jar signFiles

在那之后,它开始工作,但并不顺利。每次我运行它时,浏览器都会请求许可。这不好。我希望我的经验能有所帮助