项目中有很多信息如果明文直接推送到网页中,会产生太多的非安全因素,以及如果我们需要一个唯一值是根据现有信息和时间生成,那么Hashids就是为此而生的。github地址:https://github.com/ivanakimov,支持现有常用的编程语言的支持。
Hashids介绍
以PHP为例,官方中的定义是:
A small PHP class to generate YouTube-like ids from numbers.
言简意赅就是这是一个轻量级库用来生成混淆字符串
Hashids安装
Github上建议通过composer依赖管理器安装,不同的编程语言有不同的安装方式。
例如JS可以通过使用bower包管理器,或者直接下载JS库使用。
<script type="text/javascript" src="lib/hashids.min.js"></script>
Hashids使用
还是以PHP为例,基本的用法如下:
$hashids = new Hashids\Hashids();//实例化hashids
$id = $hashids->encrypt(1, 2, 3);//加密多个值,也可以加密单个值
$numbers = $hashids->decrypt($id);//解密哈希值
自定义SALT值用法如下;
Hashids类的构造函数有三个参数分别是:
$salt = '', $min_hash_length = 0, $alphabet = ''
$salt是自定义的SALT值,最好大于6位小于32位。
$min_hash_length是哈希值最小长度,最少7位。
$alphabet是加密生成的字符串来源默认是abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
,可以自己定义,但要多于16个。
$hashids = new Hashids\Hashids('this is my salt', 8, 'abcdefghij1234567890'); //实例化
$id = $hashids->encrypt(1, 2, 3); //加密
$numbers = $hashids->decrypt($id); //解密
Hashids扩展
hashids生成的混淆字符串是随机性的。
由于它本身避免了以下字符串相邻,所以大部分英文的脏话是不会出现的。
c, C, s, S, f, F, h, H, u, U, i, I, t, T