业务id转密文短链的一种实现思路
業(yè)務(wù)場(chǎng)景:
買(mǎi)家通過(guò)電商app下單后,會(huì)受到一條短信,短信內(nèi)容中包括改訂單詳情頁(yè)面的h5地址連接,因?yàn)槭浅霈F(xiàn)在短信中,所以對(duì)連接有要求:1.盡量短;2.安全性考慮,訂單在數(shù)據(jù)庫(kù)中對(duì)應(yīng)的自增主鍵id不能暴露出來(lái);3. url中id加密串位數(shù)要固定
解決思路:
要滿足第2條要求,肯定是要對(duì)id進(jìn)行某種加密后來(lái)展現(xiàn)到url中,其實(shí)方法有很多,可以通過(guò)把10進(jìn)制id轉(zhuǎn)為高進(jìn)制(比如36進(jìn)制)串;也可以直接對(duì)id進(jìn)行md5加密。但是轉(zhuǎn)換高進(jìn)制的方式會(huì)位數(shù)不固定,這樣不符合第3個(gè)條件。直接md5加密太長(zhǎng)不滿足條件2。鑒于此,要繼續(xù)往下深入思考一下了
在搜索引擎如此發(fā)達(dá)的時(shí)代,如果什么事情都想著自己去原創(chuàng),那樣會(huì)顯得太傻,于是,當(dāng)你當(dāng)前所能想出的方案不能解決問(wèn)題時(shí)候,那就去度娘或者谷歌吧
于是去度娘敲下“微博短鏈”,深深可以借鑒,先粘上微博中url短鏈算法思路及代碼如下:
-
將長(zhǎng)網(wǎng)址md5生成32位簽名串,分為4段,每段8個(gè)字節(jié);
-
對(duì)這四段循環(huán)處理,取8個(gè)字節(jié),將他看成16進(jìn)制串與0x3fffffff(30位1)與操作,即超過(guò)30位的忽略處理;
-
這30位分成6段,每5位的數(shù)字作為字母表的索引取得特定字符,依次進(jìn)行獲得6位字符串;
-
總的md5串可以獲得4個(gè)6位串;取里面的任意一個(gè)就可作為這個(gè)長(zhǎng)url的短url地址
?
轉(zhuǎn)載于:https://www.cnblogs.com/kerwing/p/9087869.html
總結(jié)
以上是生活随笔為你收集整理的业务id转密文短链的一种实现思路的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux rz sz使用
- 下一篇: tp703n怎么做无线打印服务器,TP-