在我们的开发过程中,经常会遇到ID生成的问题,那么这里就介绍一种解决方案,注意这里只适合混淆ID规则,也就是说生成的ID没有任何规则,不适用于订单ID。
一般有序自增主键的ID,极易被爬虫抓取数据,作为应用开发者,这是不应该的,你辛辛苦苦收集的数据转眼之间被其他人给抓取了,是不是很大的损失?
话说著名的Youtube网站就是这么做的。
今天我们介绍的一个支持市面上所有语言的数字编码库hashids。
hashids
![c3adbcf8da085fc49d9716907a18fc11.png](https://img-blog.csdnimg.cn/img_convert/c3adbcf8da085fc49d9716907a18fc11.png)
Hashids是一个非常小巧的跨语言的开源库,它用来把数字编码成一个随机字符串。它不同于md5这种算法这种单向映射,Hashids除了编码还会解码。
如果转换方式一样,那么同一字符串得到的结果是相同的。
Hashids hashids= new Hashids("this is my salt");//加密数字1String hashStr = hashids.encode(1);System.out.println("1加密后值为:"+hashStr);//解密数字1long[] hashNums = hashids.decode(hashStr);f