2017-08-29 118 views
-1

更新的問題驗證WordPress的賬戶由一個獨特的複合標識

使用案例

軟件系統利用由WordPress的賬戶如提供的數據用戶名。有一個變化,即兩個WordPress帳戶沒有相同的唯一用戶ID或用戶名,因爲他們在自己的環境中運行。但是因爲他們都利用我的軟件系統提供的環境,所以需要一個唯一的ID。

因此,爲了驗證每個WordPress帳戶(使用它)的真實性,系統必須對特定的WordPress帳戶有一定的參考。我想創建一個用戶ID和用戶名的組合,使其獨特。

<?php 

global 
$current_user; 
get_currentuserinfo(); 

$hash = crc32($current_user->user_login); 

輸出:385153371 ===根

$unique_id = $hash . $current_user->ID; 

輸出:385153371 {2} ===根{2}

記錄例如

enter image description here enter image description here

+1

爲什麼不讓數據庫生成一個唯一的ID作爲主鍵?您可以在用戶名字段上設置唯一性約束,以確保它們不會重複。或者使用用戶名作爲主鍵,並在UI/API層(取決於您的程序結構)中進行驗證,以在插入之前檢查重複項。目前還不清楚爲什麼你需要做你建議的過程。 – ADyson

+0

即使你這樣做,目前還不清楚爲什麼返回數字中的數字數目會有重要意義。只是增加一個任意的第10位數字也不能保證唯一性,我不認爲,因爲你可以很容易地再次將相同的數字添加到相同的散列輸出。你說第10位數字是主鍵,但是如果你的主鍵只有1位數字,那麼在你違反密鑰之前,你必須限制爲10個用戶(0-9)。 – ADyson

+0

這是一個32位整數(因此crc32),無符號範圍爲0到4,294,967,295;但可以在32位PHP系統上返回一個負數(範圍爲-2,147,483,648至2,147,483,647);所以可能有10位數字和一個符號 –

回答

2

甲CRC32散列的長度是8個十六進制數字。這意味着它可以多達10位十進制數字的長度並帶有可選的符號字符。如果你想用它作爲更大的方案的一部分,那麼你應該確定它是0填充到全長。