我正在使用名为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" */
有人不能只看源并查看我的自定义盐吗?这种保护如何解密?我错过了什么吗?
答案 0 :(得分:3)
这显然不是哈希,因为根据定义,哈希不能被解密。 (它们可以被破解,但这是另一回事)如果这只是一个有趣的小Javascript应用程序,你正在使用hashid.js。如果它比一个有趣的小项目更大,请使用真正的哈希。 MD5
,SHA-1
等。这是一个很好的Javascript哈希库:https://code.google.com/p/crypto-js/
编辑:由于人们无论如何都可以看到你的客户端代码,你应该使用PHP来输出预先散列的变量,这样就没有人能看到它最初是什么。