在javascript中隐藏我的哈希号

Posted

技术标签:

【中文标题】在javascript中隐藏我的哈希号【英文标题】:Hiding my hash number in javascript 【发布时间】:2018-03-30 05:23:51 【问题描述】:

我正在尝试在客户端使用指纹,并将此代码作为更大代码的一部分。

function checksum(str) 
    var hash = 5382,
        i = str.length;

    while (i--) hash = (hash * 33) ^ str.charCodeAt(i);

    return hash >>> 0;

如您所见,哈希值一目了然。你能告诉我如何或使用什么实现,以便我可以隐藏或任何可以掩盖哈希 = 5382 的东西。谢谢。

【问题讨论】:

只能混淆,不能真正“隐藏” 你可以使用CryptoJS:***.com/questions/18279141/… 你需要像RSA这样的非对称算法。 请不要打扰... 将此计算带到服务器,毕竟javascript是浏览器的客户端语言。 【参考方案1】:

如果你用base64编码,但任何人都可以轻松解码。你的哈希值有多敏感?

str = "The quick brown fox jumps over the lazy dog";
b64 = btoa(unescape(encodeURIComponent(str)));
str = decodeURIComponent(escape(window.atob(b64)));

输出将是 VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZw==

如果您使用的是 php,您只需 base64_encode() 和 base64_decode() 即可处理。例如,您可以使用编码值隐藏输入,然后获取它的 val 并使用我给您的最后一行。

Base64 PHP http://php.net/manual/en/function.base64-encode.php 和 base64 JAVASCRIPT https://developer.mozilla.org/pt-BR/docs/Web/API/WindowBase64/atob 。或者你可以加密它的内容然后在服务器端解密它。这是一个加密/解密数据的小类(PHP):

<?php
namespace Company\Security;

/*
 *   @description: Simple class to wrap crypt function calls
 *   @author: Marco A. Simao
 */

class Crypto 

/*
 * returns encrypted data with iv appended at the begining of the string 
 */
public static function encrypt($data, $key)

    $iv = openssl_random_pseudo_bytes(16);

    $c = openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);

    return $iv . $c;


/*
 * returns decrypted data. Expects 16 first bytes of data to be iv table.
 */
public static function decrypt($data, $key)

    return openssl_decrypt(substr($data, 16), 'AES-128-CBC', $key, OPENSSL_RAW_DATA, substr($data, 0, 16));


你需要用 Javascript 解密,例如:How to use the Web Crypto API to decrypt a file created with OpenSSL?

【讨论】:

这看起来不错。你能告诉我它的示例实现吗? @stackquestions -- 请记住这是不安全的,任何客户端都可以自己重写脚本并查看结果。如果您的目标是隐藏字符串以防止不经意间的眼睛粗略检查,那很好,但它不会提供任何“真正的”安全性。 是的,谢谢指出,我忘了告诉他,但我问它有多敏感:) 你能不能给我看一下,或者只是给我一个话题,这样我就可以研究了。谢谢。

以上是关于在javascript中隐藏我的哈希号的主要内容,如果未能解决你的问题,请参考以下文章

DIV,CSS如何实现“加减号”“显示隐藏”效果

javasc面向对象编程

将 Javascript 计算传递给 Django 后端

Ajax 调用加载的 Javascript 不执行?

从带有命名空间的哈希值调用 Javascript 函数

在Javascript中的<a>链接中获取哈希[重复]