我的哈希id是否受到保护而无法解密?

时间:2014-01-13 01:00:19

标签: javascript

我正在使用名为hashids,hashids.js的Javascript版本,可在此处找到:http://www.hashids.org/

基本用法

要加密一个简单的数字:

var Hashids = new Hashids();
var hash = Hashids.encrypt(123);

var Hashids = new Hashids();
var numbers = Hashids.decrypt('Mj3');

这是我的问题:

使用自定义盐

Hashids支持通过接受salt值来个性化哈希值。如果您不希望其他人解密您的哈希值,请为构造函数提供唯一的字符串。

var Hashids = new Hashids('this is my salt 1');
var hash = Hashids.encrypt(123); /* hash is now "nVB" */

有人不能只看源并查看我的自定义盐吗?这种保护如何解密?我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

这显然不是哈希,因为根据定义,哈希不能被解密。 (它们可以被破解,但这是另一回事)如果这只是一个有趣的小Javascript应用程序,你正在使用hashid.js。如果它比一个有趣的小项目更大,请使用真正的哈希。 MD5SHA-1等。这是一个很好的Javascript哈希库:https://code.google.com/p/crypto-js/

编辑:由于人们无论如何都可以看到你的客户端代码,你应该使用PHP来输出预先散列的变量,这样就没有人能看到它最初是什么。