首页 > 技术文章 > 如何使用Hashids

lancode 2014-09-10 15:05 原文

 项目中有很多信息如果明文直接推送到网页中,会产生太多的非安全因素,以及如果我们需要一个唯一值是根据现有信息和时间生成,那么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

 

推荐阅读