PHP kullanarak her biri farklı sunucuda benzersiz bir kimliği oluşturma

5 Cevap

Ben .. Bu kiosk bir ağa bağlı, ne de birbirlerine, ayrı bir web sunucusu ve veritabanı değil bir köşk olarak kullanmak bir çevrimdışı sitesinin kullanıcıları için benim veritabanı tablosu oluşturma planlıyorum .. iyi şey ne mi ben onların farklı benzersiz bir kimliğe sahip her kiosk bu kullanıcılar için kullanabilir miyim? Sanırım tek bir sunucuda her makinede tüm veriler bulunuyor birleştirmek zaman biz her benzersiz kimlikleri ağırlayacak böylece hash kullanarak planlıyorum.

5 Cevap

Eğer kimlikleri oluşacak ne kadar üzerinde tam bir kontrole sahip olmadığını ilk kurarken, onlar makineler arasındaki örtüşme olmayacak Eğer öyleyse o zaman kullanıcının benzersiz kimliği verileri içerebilir, her makineye bir ID'ye verebilir.

Eğer herhangi bir manuel kurulum yapmak zorunda istemiyorsanız, size makinenin eşsiz kimliği olarak (ağ bağdaştırıcısı MAC adresi gibi) donanım kimliği çeşit kullanabilirsiniz.

Kiosk id saklamak ve herhangi bir benzersiz karma önüne koymak için basit bir ini dosyasını kullanın.

Bu şekilde uygulanabilir:

$config = parse_ini_file('./config.php');
$hash = $config['kiosk_id'].'_'.microtime();
//$hash = md5($hash); //looks more random, but can collide

En iyi bahis değişen bir parçası olarak düzenli auto_increment sütuna dayalı bir bileşik anahtar, ve bir değişmeyen eşsiz başına kiosk belirleyicisiyle yaratıyor. Bir ethernet kartı (kullanımda bile değil aslında eğer) Windows SID, vb varsa hostname, IP adresi, MAC adresi ..

CREATE TABLE user
     user_id   auto_increment not null,
     kiosk_id   char(32) not null,
     PRIMARY KEY (user_id, kiosk_id),
     etc...
);

daha sonra daha sonra bir ana trivially tabloda kombine edilebilir.