日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Id都是“とつくとき”这样的怎么爬,在线等,急

發(fā)布時間:2023/12/4 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Id都是“とつくとき”这样的怎么爬,在线等,急 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一般來說,我們推薦使用整數(shù)Id作為數(shù)據(jù)表的主鍵,這樣可以提供不少好處:存儲空間小,簡潔易懂,方便分頁、排序、索引。

但當這種Id暴露到外部時,比如訂單號,就存在一定的風險了。因為不管是自增、雪花算法(SnowFlake)或者自定義算法,生成的Id都是存在一定規(guī)律可循,容易被爬蟲生成Id用于爬站,甚至泄露數(shù)據(jù)。

要想避免這種風險,比較簡單的方案是將Id加密成無意義的字符串,但是通過這些字符串又可以反向映射出真實的Id以供內(nèi)部使用。比如B站的播放鏈接https://www.bilibili.com/video/BV1xK4y1VXXX應該就是這種實現(xiàn)方式。

而hashids就可以很好地滿足上述需求。

hashids介紹

hashids[1]是一個小型的開源庫,它可以把數(shù)字生成簡短、唯一、非連續(xù)的隨機字符串。不同于md5 hash這種只能單向加密,hashids還可以把這些Id解碼回來。

hashids提供多種編程語言的實現(xiàn),在這里我們使用的是它的.Net版本hashids.net[2]

1.創(chuàng)建實例

首先引用nuget包hashids.net,然后初始化一個實例:

var?hashids?=?new?Hashids("公眾號My?IO");//加鹽

hashids的優(yōu)點是初始化時可以設置salt值,相當于編解碼的私鑰。這樣就算別人知道是用hashids加密的,但是不知道你的salt值,就不可能生成符合要求的字符串Id,也無法解碼。

2.加解密int

var?str?=?hashids.Encode(12345); var?num?=?hashids.Decode(str)[0];//輸出 WwYQ 12345

hashids支持同時傳入多個Id加密,因此解密的結果是一個數(shù)組,這里我們只取第一個。

3.加解密long

雪花算法生成的long類型id也支持。

var?str?=?hashids.EncodeLong(666555444333222L); var?num?=?hashids.DecodeLong(str)[0];//輸出 eJR1llm5RzA 666555444333222

4.高級用法

限制最小長度

從上面的例子可以看到,加密后得到的字符串WwYQ太短了,以現(xiàn)在的計算機速度很容易遍歷出來,因此我們可以限制生成的最小長度,增大破解難度。

var?hashids?=?new?Hashids("公眾號My?IO",minHashLength:8); var?str?=?hashids.Encode(12345); var?num?=?hashids.Decode(str)[0]; var?success?=?(hashids.Decode("WwYQ").Any());//輸出 0ZWwYQZo 12345 False

設置了最小長度為8,所以原來的短字符串已經(jīng)無法解密了。

自定義哈希字母表

默認加密字符串只包含大小寫字母和數(shù)字,我們可以使用其他unicode作為哈希字母表,增大破解難度。

var?hashids?=?new?Hashids("公眾號My?IO",?alphabet:?@"あいうえおかきくけこさしすせそたちつてと"); var?str?=?hashids.Encode(12345);//輸出 とつくとき

歡迎關注我的個人公眾號”My IO“參考

[1]

hashids: https://hashids.org/

[2]

hashids.net: https://github.com/ullmark/hashids.net

總結

以上是生活随笔為你收集整理的Id都是“とつくとき”这样的怎么爬,在线等,急的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。