如何在客户端javascript应用程序中隐藏凭据

如何在客户端javascript应用程序中隐藏凭据,javascript,Javascript,我有一个简单的javascript客户端应用程序。有两个变量,即username和password,其值如下: var username = "test123"; var password = "test@123" 但问题是,由于这是一个客户端javascript应用程序,这两个值应该进行硬编码才能使用,但是我也不想公开它们 最好的方法是什么 即使我将这些值写入另一个javascript文件并尝试读取它,当页面加载时,用户也总能看到该文件 这种情况有解决

我有一个简单的
javascript
客户端应用程序。有两个变量,即
username
password
,其值如下:

var username = "test123";
var password = "test@123"
但问题是,由于这是一个客户端
javascript
应用程序,这两个值应该进行硬编码才能使用,但是我也不想公开它们

最好的方法是什么

即使我将这些值写入另一个javascript文件并尝试读取它,当页面加载时,用户也总能看到该文件


这种情况有解决办法吗?

简单地说,你不能。但是有一个工作要做。你可以用一种方式对密码进行散列,然后用盐将散列发送出去。你不能把哈希去掉。比如说,我们有一个如下的哈希函数:

hashCode = s =>
  s.split("").reduce((a, b) => {
    a = (a << 5) - a + b.charCodeAt(0);
    return a & a;
  }, 0);
hashCode=s=>
s、 拆分(“”)。减少((a,b)=>{
a=(a)
s、 拆分(“”)。减少((a,b)=>{

a=(a您可以将凭据存储在后端应用程序上。在后端使用这些凭据,并向需要凭据的原始身份验证服务器发送请求

Your Client =====>  Your server =======> Resource Server 

此外,在向资源服务器发送请求之前,您可以让服务器(从客户端)需要一个令牌。

不建议在源代码中公开凭据,因为这会使您的应用程序易受攻击和脆弱

可能的选项:

  • 尝试使用
    restapi
    方法来满足您的需求(如果可以的话)
  • 尝试使用或等效工具使用
    变量屏蔽
    技术

TL;DR.不可能。但是…阅读我的答案…哦,所以没有可能的方法…不完全是。我现在澄清了…哪里有意愿,哪里就有方法!我不明白这一点。所以你已经输入了
const password
,所以当页面加载时,用户不也能看到吗?@JananaHjayarathna我添加了一个片段来解释你是如何做到的可以使用它。@JananathJayarathna Try
Hello@123
还有另一个密码,然后按enter键检查!我说,我只有一个客户端应用程序,没有服务器。它只是一个带有javascript的
html
文件codes@JananathJayarathna我一点也没提到服务器。这是另一个答案。你在哪里找到的我说的是服务器吗?显然,作者并没有提到任何他无法访问服务器的事情。