1. 程式人生 > >PHP處理唯一code值(邀請碼/優惠券編碼)

PHP處理唯一code值(邀請碼/優惠券編碼)

在專案中,暴露給使用者真實的專案ID,很有可能被惡意採集,很有可能被猜到目前有多少量(對造假不利)。前兩天群裡有人分享了一個php類庫Hashids,就可以解決這個問題。Hashids是一個能利用整數生成出短小、唯一、非連續識別符號的類庫,它支援包含php在內的好多好多(真的好多)種語言。 Hashids支援通過生成出來的識別符號進行解碼為原數字,還支援加鹽加密,不會因為大家都用這個類庫就被猜到真實ID。

  1. 安裝類庫

    composer require hashids/hashids

  2. 加密示例

$id = 123;
$hashids = new Hashids\Hashids();

// 編碼
$hashID = $hashids->encode($id); // 解碼 $decodeResult = $hashids->decode($hashID); var_dump($hashID, $decodeResult); // 陣列編碼 $hashID = $hashids->encode([1, 2, 3]); // 陣列解碼 $decodeResult = $hashids->decode($hashID); var_dump($hashID, $decodeResult); // 加鹽編碼 $hashids = new Hashids\Hashids('我是鹽'); // 編碼
$hashID = $hashids->encode($id); // 解碼 $decodeResult = $hashids->decode($hashID); var_dump($hashID, $decodeResult); $hashids = new Hashids('jianchayun',6);//引數一salt,引數二所要的編碼長度 $code = $hashids->encode($user_id);