lostyazilim
tr.link

PHP Uniqid oluşturma

11 Mesajlar 1.611 Okunma
lstbozum
tr.link

Wayusel Wayusel Deutschland Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 24 / E
  • Meslek Öğrenci
  • Konum Nevşehir
  • Ad Soyad V** K**
  • Mesajlar 31
  • Beğeniler 13 / 2
  • Ticaret 0, (%0)
Ön eki 'WT' olan toplam ön ekle birlikte 18 karakterlik bir uniqid oluşturan kod lazım. Uniqid kullanımı çok kolay ön ek felan ayarladım ama uzunluğunu ayarlıyamadım. Nasıl yapabilirim ? İllaha uniqid olmak zorunda değil ama eşsiz bir anahtar oluşturmam lazım başka bir yol var ise onu da yazabilirsiniz.
 

 

wmaraci
reklam

SancarSaran SancarSaran WM Aracı Kullanıcı
  • Üyelik 14.01.2018
  • Yaş/Cinsiyet 52 / E
  • Meslek Programcı
  • Konum İzmir
  • Ad Soyad S** S**
  • Mesajlar 319
  • Beğeniler 4 / 111
  • Ticaret 0, (%0)
uuid generatore bak daha kolay olur.


class UUID {
public static function v3($namespace, $name) {
if(!self::is_valid($namespace)) return false;

// Get hexadecimal components of namespace
$nhex = str_replace(array('-','{','}'), '', $namespace);

// Binary Value
$nstr = '';

// Convert Namespace UUID to bits
for($i = 0; $i < strlen($nhex); $i+=2) {
$nstr .= chr(hexdec($nhex[$i].$nhex[$i+1]));
}

// Calculate hash value
$hash = md5($nstr . $name);

return sprintf('%08s-%04s-%04x-%04x-%12s',

// 32 bits for "time_low"
substr($hash, 0, 8),

// 16 bits for "time_mid"
substr($hash, 8, 4),

// 16 bits for "time_hi_and_version",
// four most significant bits holds version number 3
(hexdec(substr($hash, 12, 4)) & 0x0fff) | 0x3000,

// 16 bits, 8 bits for "clk_seq_hi_res",
// 8 bits for "clk_seq_low",
// two most significant bits holds zero and one for variant DCE1.1
(hexdec(substr($hash, 16, 4)) & 0x3fff) | 0x8000,

// 48 bits for "node"
substr($hash, 20, 12)
);
}

public static function v4() {
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',

// 32 bits for "time_low"
mt_rand(0, 0xffff), mt_rand(0, 0xffff),

// 16 bits for "time_mid"
mt_rand(0, 0xffff),

// 16 bits for "time_hi_and_version",
// four most significant bits holds version number 4
mt_rand(0, 0x0fff) | 0x4000,

// 16 bits, 8 bits for "clk_seq_hi_res",
// 8 bits for "clk_seq_low",
// two most significant bits holds zero and one for variant DCE1.1
mt_rand(0, 0x3fff) | 0x8000,

// 48 bits for "node"
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
);
}

public static function v5($namespace, $name) {
if(!self::is_valid($namespace)) return false;

// Get hexadecimal components of namespace
$nhex = str_replace(array('-','{','}'), '', $namespace);

// Binary Value
$nstr = '';

// Convert Namespace UUID to bits
for($i = 0; $i < strlen($nhex); $i+=2) {
$nstr .= chr(hexdec($nhex[$i].$nhex[$i+1]));
}

// Calculate hash value
$hash = sha1($nstr . $name);

return sprintf('%08s-%04s-%04x-%04x-%12s',

// 32 bits for "time_low"
substr($hash, 0, 8),

// 16 bits for "time_mid"
substr($hash, 8, 4),

// 16 bits for "time_hi_and_version",
// four most significant bits holds version number 5
(hexdec(substr($hash, 12, 4)) & 0x0fff) | 0x5000,

// 16 bits, 8 bits for "clk_seq_hi_res",
// 8 bits for "clk_seq_low",
// two most significant bits holds zero and one for variant DCE1.1
(hexdec(substr($hash, 16, 4)) & 0x3fff) | 0x8000,

// 48 bits for "node"
substr($hash, 20, 12)
);
}

public static function is_valid($uuid) {
return preg_match('/^\{?[0-9a-f]{8}\-?[0-9a-f]{4}\-?[0-9a-f]{4}\-?'.
'[0-9a-f]{4}\-?[0-9a-f]{12}\}?$/i', $uuid) === 1;
}
}

// Usage
// Named-based UUID.

$v3uuid = UUID::v3('1546058f-5a25-4334-85ae-e68f2a44bbaf', 'SomeRandomString');
$v5uuid = UUID::v5('1546058f-5a25-4334-85ae-e68f2a44bbaf', 'SomeRandomString');

// Pseudo-random UUID

$v4uuid = UUID::v4();
?>
 

 

Wayusel Wayusel Deutschland Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 24 / E
  • Meslek Öğrenci
  • Konum Nevşehir
  • Ad Soyad V** K**
  • Mesajlar 31
  • Beğeniler 13 / 2
  • Ticaret 0, (%0)
Yazdığınız için teşekkür ederim ama hem çok uzun hem de ben hiç bir şey anlamadım.
 

 

Wayusel Wayusel Deutschland Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 24 / E
  • Meslek Öğrenci
  • Konum Nevşehir
  • Ad Soyad V** K**
  • Mesajlar 31
  • Beğeniler 13 / 2
  • Ticaret 0, (%0)
Şöyle bir kod buldum. Buna nasıl ön ek ekleyebilirim ? Bu işe yarar mı ?



$harf = 'ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ';
$harf_sayisi = mb_strlen($harf);
for ($i = 0; $i < 10; $i++){
$secilen_harf_konumu = mt_rand(0,$harf_sayisi - 1);
$kod = mb_substr($harf, $secilen_harf_konumu, 1).rand(0,9);

echo substr(md5(rand(0, 90)), 0, 16)

 

 

wmaraci
wmaraci

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Benim kullandığım rastgele harf, sayı, harf-sayı oluşturan sınıfı kullanın. Ön ek eklemek isterseniz ona göre değişiklik yapılabilir. Sadece bir tane fonksiyonu kullanmak isterseniz diğerlerini silebilirsiniz, hatta class yapısını bozup sadece fonksiyon olarak da kullanabilirsiniz hepsini.


class Rastgele
{
static function Sayi($length)
{
$chars = "1234567890";
$clen = strlen( $chars )-1;
$id = '';
for ($i = 0; $i < $length; $i++) {
$id .= $chars[mt_rand(0,$clen)];
}
return ($id);
}
static function Harf($length)
{
$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
$clen = strlen( $chars )-1;
$id = '';
for ($i = 0; $i < $length; $i++) {
$id .= $chars[mt_rand(0,$clen)];
}
return ($id);
}
static function HarfSayi($length)
{
$chars = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
$clen = strlen( $chars )-1;
$id = '';
for ($i = 0; $i < $length; $i++) {
$id .= $chars[mt_rand(0,$clen)];
}
return ($id);
}
}


Kullanımı
Rastgele::HarfSayi(18); // 18 haneli
 

 


Mrtcn Mrtcn PrismaCSI Kullanıcı
  • Üyelik 06.09.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek Cyber Sec &amp; Project Manager
  • Konum Ankara
  • Ad Soyad M** G**
  • Mesajlar 3356
  • Beğeniler 481 / 1987
  • Ticaret 10, (%100)
Benzersizliği kanıtlanmış olan https://www.php.net/manual/tr/function.uniqid.php var bunu kullanın.

(Benzer çıkma oranı baya düşük matematiksel açıdan)
 

 

Wayusel Wayusel Deutschland Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 24 / E
  • Meslek Öğrenci
  • Konum Nevşehir
  • Ad Soyad V** K**
  • Mesajlar 31
  • Beğeniler 13 / 2
  • Ticaret 0, (%0)

class Rastgele {
static function HarfSayi($length)
{
$chars = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
$clen = strlen( $chars )-1;
$id = '';
for ($i = 0; $i < $length; $i++) {
$id .= $chars[mt_rand(0,$clen)];
}
return ($id);
}}


Şuraya yazdıracağım ama nasıl ?
 

 

Wayusel Wayusel Deutschland Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 24 / E
  • Meslek Öğrenci
  • Konum Nevşehir
  • Ad Soyad V** K**
  • Mesajlar 31
  • Beğeniler 13 / 2
  • Ticaret 0, (%0)

Mrtcn adlı üyeden alıntı

Benzersizliği kanıtlanmış olan https://www.php.net/manual/tr/function.uniqid.php var bunu kullanın.

(Benzer çıkma oranı baya düşük matematiksel açıdan)


Dediğinizi gördüm ama belirtiğim gibi uniqid uzunluğunu ayarlayamıyorum.
 

 

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)

function HarfSayi($length)
{
$chars = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
$clen = strlen( $chars )-1;
$id = '';
for ($i = 0; $i < $length; $i++) {
$id .= $chars[mt_rand(0,$clen)];
}
return ($id);
}




 

 


Wayusel Wayusel Deutschland Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 24 / E
  • Meslek Öğrenci
  • Konum Nevşehir
  • Ad Soyad V** K**
  • Mesajlar 31
  • Beğeniler 13 / 2
  • Ticaret 0, (%0)
Değiniz gibi yaptım sayfa açılıyor ama textbox gözükmüyor.
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al