摘要:是一個可以生成唯一的非順序的字符串號碼,它還可以對這些進行解密,你可以利用它來加密你不想暴露給用戶的數字。安裝你可以設置一些選項在里,或者你也可以在構造方法里面設置,但是我推薦你在中設置,這樣你可以擁有更好的性能。
Hashids 是一個可以生成唯一的非順序的字符串 ID 號碼,它還可以對這些 ID 進行解密,你可以利用它來加密你不想暴露給用戶的數字 ID。安裝
$ git clone https://github.com/cdoco/hashids.phpc.git $ cd hashids.phpc $ phpize && ./configure && make && make install
你可以設置一些選項在 php.ini 里,或者你也可以在構造方法里面設置,但是我推薦你在 php.ini 中設置,這樣你可以擁有更好的性能。
[hashids] extension=hashids.so //默認是空字符串 hashids.salt=cdoco //默認長度是 0 hashids.min_hash_length=20 //默認是 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 //你可以自己設置它,比如你使用全部小寫的字符 hashids.alphabet=abcdefghijklmnopqrstuvwxyz快速開始
$hashids = new Hashids(); $hash = $hashids->encode(1, 2, 3, 4, 5); // ADf9h9i0sQ $numbers = $hashids->decode($hash); // [1, 2, 3, 4, 5] //或者你可以用靜態方法調用 $hash = Hashids::encode(1, 2, 3, 4, 5); // ADf9h9i0sQ $numbers = Hashids::decode($hash); // [1, 2, 3, 4, 5]性能
原來有純 php 代碼實現的一個功能,現在把它封裝成了一個 php 擴展,性能比純 php 的版本提升了百倍左右
其他$hashids = new Hashids(); $hash = $hashids->encode(1, 2, 3, 4, 5); // ADf9h9i0sQ $hash = $hashids->encode([1, 2, 3, 4, 5]); // ADf9h9i0sQ
構造方法的參數
new Hashids(string $salt, int $min_hash_length, string $alphabet); //example new Hashids("this is salt.", 20, "abcdefghijklmnopqrstuvwxyz");
16 進制加密和解密
$hashids = new Hashids(); $hash = $hashids->encodeHex("FFFFDD"); // rYKPAK $hex = $hashids->decodeHex($hash); // FFFFDD
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28605.html
摘要:使用進制也能生成比較短的字符串唯一,不過還有更好的解決方案,你也看到了上面短鏈接的唯一里還包含大寫字母。接下來我們使用進制轉換,將一個十進制數字轉化為對應的進制表示。一億用進制表示出來后的結果是生成的唯一字符串足夠短。 假設你想做一個像微博短鏈接那樣的短鏈接服務,短鏈接服務生成的URL都非常短例如: http://t.cn/E70Piib, 我們應該都能想到鏈接中的E70Piib對應的...
摘要:使用進制也能生成比較短的字符串唯一,不過還有更好的解決方案,你也看到了上面短鏈接的唯一里還包含大寫字母。接下來我們使用進制轉換,將一個十進制數字轉化為對應的進制表示。一億用進制表示出來后的結果是生成的唯一字符串足夠短。 假設你想做一個像微博短鏈接那樣的短鏈接服務,短鏈接服務生成的URL都非常短例如: http://t.cn/E70Piib, 我們應該都能想到鏈接中的E70Piib對應的...
摘要:原文地址唯一的生成并不是一件小事想說愛它也并不是像簡單來一個這樣一件容易的事為什么要唯一數據庫的自增在分庫的時候會是一場災難假設分兩個庫因為每個庫都會開始從開始自增屆時系統中將會出現兩個為的用戶自增會暴露用戶量或者其他業務量自增會讓有心者 [原文地址:https://blog.ti-node.com/blog...] 唯一ID的生成并不是一件小事 , 想說愛它 , 也并不是像簡單來一個...
摘要:和中存儲的文檔必須有一個鍵。這是的創建方式導致的。由于時間戳在前,這意味著大致會按照插入的順序排列。前字節保證了同一秒鐘不同機器不同進程產生的是唯一的。如果驅動程序允許服務器生成,那么將需要單獨的查詢,以確定插入的文檔中的值。 _id和ObjectId MongoDB 中存儲的文檔必須有一個_id 鍵。這個鍵的值可以是任何類型的,默認是個ObjectId 對象。在一個集合里面,每個文檔...
摘要:如將構造函數作為函數進行調用即不包括的方式,返回的是日期的字符串表示,而非日期對象。如果不注意這一點,沒有始終使用日期構造函數,將得到一堆混亂的日期對象和日期的字符串。關于日期類的完整解釋,以及構造函數的參數格式,參見規范節。 上一篇文章:MongoDB指南---2、MongoDB基礎知識-文檔、集合、數據庫、客戶端下一篇文章:MongoDB指南---4、MongoDB基礎知識-使用M...
閱讀 1875·2021-09-27 13:35
閱讀 3429·2019-08-30 14:16
閱讀 2483·2019-08-30 10:52
閱讀 859·2019-08-29 16:35
閱讀 1416·2019-08-29 15:22
閱讀 3641·2019-08-23 18:21
閱讀 3133·2019-08-23 18:00
閱讀 3123·2019-08-23 16:50