repositoryitemlookupedit根据每行的id绑定数据_一种根据数据库自增ID生成唯一ID的解决方案...
生活随笔
收集整理的這篇文章主要介紹了
repositoryitemlookupedit根据每行的id绑定数据_一种根据数据库自增ID生成唯一ID的解决方案...
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在我們的開發(fā)過程中,經(jīng)常會遇到ID生成的問題,那么這里就介紹一種解決方案,注意這里只適合混淆ID規(guī)則,也就是說生成的ID沒有任何規(guī)則,不適用于訂單ID。
一般有序自增主鍵的ID,極易被爬蟲抓取數(shù)據(jù),作為應用開發(fā)者,這是不應該的,你辛辛苦苦收集的數(shù)據(jù)轉(zhuǎn)眼之間被其他人給抓取了,是不是很大的損失?
話說著名的Youtube網(wǎng)站就是這么做的。
今天我們介紹的一個支持市面上所有語言的數(shù)字編碼庫hashids。
hashids
Hashids是一個非常小巧的跨語言的開源庫,它用來把數(shù)字編碼成一個隨機字符串。它不同于md5這種算法這種單向映射,Hashids除了編碼還會解碼。
如果轉(zhuǎn)換方式一樣,那么同一字符串得到的結(jié)果是相同的。
Hashids hashids= new Hashids("this is my salt");//加密數(shù)字1String hashStr = hashids.encode(1);System.out.println("1加密后值為:"+hashStr);//解密數(shù)字1long[] hashNums = hashids.decode(hashStr);for (int i = 0; i < hashNums.length; i++) {??? System.out.println("解密后值為:" + hashNums[i]);}hashids自定義設(shè)置最小哈希長度
支持設(shè)置加密后的字符串長度
Hashids hashids = new Hashids("this is my salt",6); //加密數(shù)字1String hashStr = hashids.encode(1);System.out.println("自定義哈希長度加密1后值為:"+hashStr); //解密數(shù)字1 long[] hashNums = hashids.decode(hashStr);for (int i = 0; i < hashNums.length; i++) {??? System.out.println("自定義哈希長度解密1后值為:" + hashNums[i]); }hashids自定義設(shè)置哈希字母表
支持設(shè)置哈希字母表,不過最少長度應該是16位,這里沒有具體的測試。
Hashids hashids = new Hashids("this is my salt", 0, "0123456789ABCDEF"); String hashStr = hashids.encode(1); System.out.println("自定義哈希字母表加密1后值為:" + hashStr);long[] hashNums= hashids.decode(hashStr);for (int i = 0; i < hashNums.length; i++) {??? System.out.println("自定義哈希字母表解密1后值為:" + hashNums[i]); }使用
安裝,npm包地址:https://www.npmjs.com/package/hashids
npm install hashids在PHP中的使用方法:
$hashids = new HashidsHashids('this is my salt');$id = $hashids->encode(1, 2, 3);$numbers = $hashids->decode($id);在NodeJs中使用
const Hashids = require('hashids/cjs');const hashids = new Hashids('', 11);hashids.encode(20);在JS中使用
在使用過程中,該方法不可用來作為加密使用。
項目地址請點擊擴展鏈接
總結(jié)
以上是生活随笔為你收集整理的repositoryitemlookupedit根据每行的id绑定数据_一种根据数据库自增ID生成唯一ID的解决方案...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可将70吨重坦克快速运达敌海岸!
- 下一篇: python中用函数设计栈的括号匹配问题