我正在使用Javascript版本的东西hashids。hashids.js,可以在这里找到:http://www.hashids.org/

基本用法

加密简单数字:

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

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


这是我的问题:

使用自定义盐

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

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


有人不能只看来源并查看我的自定义盐吗?如何防止解密?我错过了什么吗?

最佳答案

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

编辑:由于人们仍然可以看到您客户的代码,因此您应该使用PHP输出预隐藏的变量,因此没有人可以看到它的原始含义。

10-02 17:02