使用PHP在每个不同的服务器上创建唯一的id
我正计划为用作信息亭的脱机站点的用户创建我的数据库表。。这些信息亭既没有网络连接,也没有相互连接,它们有一个单独的Web服务器和数据库。。我能用什么来让这些用户在每个信息亭上拥有他们不同的唯一id?我计划使用散列,这样当我们将每台机器上的所有数据合并到一台服务器上时,我们就可以容纳每个唯一的ID。如果您可以完全控制如何形成ID,那么您可以在首次设置时为每台机器提供一个唯一的ID,然后,您可以将该数据包含在用户的唯一ID中,这样它们就不会在机器之间重叠使用PHP在每个不同的服务器上创建唯一的id,php,Php,我正计划为用作信息亭的脱机站点的用户创建我的数据库表。。这些信息亭既没有网络连接,也没有相互连接,它们有一个单独的Web服务器和数据库。。我能用什么来让这些用户在每个信息亭上拥有他们不同的唯一id?我计划使用散列,这样当我们将每台机器上的所有数据合并到一台服务器上时,我们就可以容纳每个唯一的ID。如果您可以完全控制如何形成ID,那么您可以在首次设置时为每台机器提供一个唯一的ID,然后,您可以将该数据包含在用户的唯一ID中,这样它们就不会在机器之间重叠 如果您不想进行任何手动设置,可以使用某种硬件
如果您不想进行任何手动设置,可以使用某种硬件ID(如网络适配器MAC地址)作为机器的唯一ID。如果您可以完全控制如何形成ID,则可以在首次设置时为每台机器提供唯一ID,然后,您可以将该数据包含在用户的唯一ID中,这样它们就不会在机器之间重叠
如果您不想进行任何手动设置,您可以使用某种硬件ID(如网络适配器MAC地址)作为机器的唯一ID。如果您需要零设置选项,请在创建用户时进行设置,将其转换为字符串,然后对其进行散列(使用md5或类似工具)?由于精度和机器时钟的任意变化,这很可能会为所有用户提供唯一性
如果你可以做一些预设置,给每台机器一个唯一的ID,并让它从该ID+机器上的某些用户特定数据项中进行散列。如果你需要零设置选项,请在创建用户时进行设置,将其转换为字符串,然后散列(使用md5或类似的工具)?由于精度和机器时钟的任意变化,这很可能会为所有用户提供唯一性
如果你可以做一些预设置,给每台机器一个唯一的ID,并让它从该ID+机器上的一些特定于用户的数据项中进行散列。我会使用PHP的函数,或MySQL的函数。我会使用PHP的函数,或者MySQL的函数。使用一个简单的ini文件来存储kiosk id,并将其放在任何唯一的哈希前面 可通过以下方式实施:
$config = parse_ini_file('./config.php');
$hash = $config['kiosk_id'].'_'.microtime();
//$hash = md5($hash); //looks more random, but can collide
使用一个简单的ini文件来存储kiosk id,并将其放在任何唯一散列的前面 可通过以下方式实施:
$config = parse_ini_file('./config.php');
$hash = $config['kiosk_id'].'_'.microtime();
//$hash = md5($hash); //looks more random, but can collide
您最好的选择是创建一个组合键,该组合键基于一个常规的自动增量列作为可变部分,以及一个不变的每个kiosk标识。主机名、IP地址、MAC地址(如果有以太网卡)(即使没有实际使用)、Windows SID等
CREATE TABLE user
user_id auto_increment not null,
kiosk_id char(32) not null,
PRIMARY KEY (user_id, kiosk_id),
etc...
);
然后可以在主表中进行简单的组合。您的最佳选择是创建一个组合键,该组合键基于一个常规的自动增量列作为可变部分,以及一个不变的每个kiosk标识。主机名、IP地址、MAC地址(如果有以太网卡)(即使没有实际使用)、Windows SID等
CREATE TABLE user
user_id auto_increment not null,
kiosk_id char(32) not null,
PRIMARY KEY (user_id, kiosk_id),
etc...
);
以后可以在主表中进行简单的组合。您是否正在寻找能够为同一用户在每台机器上生成相同哈希的内容?比如,如果我以
Slokun
的身份登录,我的哈希值可能在每台机器上都是abc123
,但如果我以Slokun2
的身份登录,它将是g6y3xg
?是否有一些特定的项目可以告诉你谁是谁,比如信用卡号码或其他什么?你是否在寻找能够在每台机器上为同一个用户生成相同哈希值的东西?比如,如果我以Slokun
的身份登录,我的哈希值可能在每台机器上都是abc123
,但如果我以Slokun2
的身份登录,它将是g6y3xg
?是否有一些特定的项目可以告诉你谁是谁,比如信用卡号码之类的?