原來還有這種工具啊,可以避免 dirty word 還蠻帥的
你問的 db index 混淆演算是什麼意思?這個 hashid 不是 id generator 啊,資料庫裡還是存 int 不是?
所以 Ingram 你若是當時知道這 lib , 還會自己開發 FlakeId 嗎?
FlakeId 是 distributed id generator ,不是做 hash,而且 FlakeId 裡面有 timestamp,有時候可以拿來query,很方便。我用的 encode 只是單純 base62,沒加混餚也沒擋髒字。現在想想好像真的該混餚一下比較好,即使現在 kaif 用不到 (都是 public resource)
真的要保密的 id 我系統裡會考慮 type4 UUID,像是 kaif 的用戶 db 的 id 就是,而非 FlakeId.
FlakeId 的一部份 source 在此1。有興趣看看吧,也可以直接改來用
原來有這樣的東西,感覺挺實用的,有時候我也會有這種內部享用auto increment,但是對外又有不想被猜到的需求。
對啊. 以前我是用encrypt 之後再 base64 , 成為 url-safe. 但是太長了,且加密用於這裡太 overkill... 想找類似 youtube-like 的 id 演算法. 就看到這個 library 了. 這 lib 好玩之處就是還可以直接 encode 多個 int , 對於 url 資訊隱藏更有用
hahsids 這工具跟 hash 一點關係也沒有,它算 codec 吧 (因為 hash 通常不能解回來)
我看了一下它的 source1 ... hmmm,只是用 salt 去 shuffle alphabet 而已,連個 PRNG 都沒用。這個隨便就會被破了吧,所以不要太依賴它的混淆做保護...