javascript - 使用盐对 id 进行编码/解码

标签 javascript c# node.js

我有一个 api,我希望允许用户向其发送 id,但我不希望该 id 通过网络可见。我决定为用户生成一个 secret ,该 secret 将用作盐来散列他们发送的id。然后,他们将使用该 idsecret 连接到我的 api

服务器是用node.js编写的,客户端将用c#编写,所以我需要一种方法,以便两种语言都可以编码/解码知道 secret

所以...

  • C# 将对 id 进行编码
  • Node.js 将解码 id

我以前从未创建过这样的盐,那么我可以使用什么方法来做到这一点?我想最终我将更多地使用 C# 来编码 id,因此其他语言的方法也很棒!

最佳答案

如果您想隐藏信息免遭窥探,请使用 TLS(如评论中建议的那样)。 另外从评论来看,您似乎想要的不是隐藏 ID,而是一种对消息进行签名的方法,这样您就可以确保收到的消息是来自应用程序的合法消息。在这种情况下,您收到的每条消息都将带有一个哈希值,该哈希值是根据消息和 key 计算得出的。然后,您的服务器将尝试根据接收到的消息和存储的 key 计算相同的哈希值,然后将其与接收到的哈希值进行比较。盐有不同的用途。 (本意是作为评论,但不适合)

参见:

关于javascript - 使用盐对 id 进行编码/解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200144/

相关文章:

node.js - 如何检查电子邮件是否存在,如果存在则抛出错误,如果与 Sequelize 和 Express 不匹配则创建用户?

javascript - 从树遍历构建 bool 表达式的算法

在子 iFrame 中加载新文档后,javascript window.top.postMessage 或 window.parent.postMessage 不起作用

javascript - 使用 javascript 或 jquery 根据表头列对表行进行排序

c# - Autofac:在一个组合后面隐藏多个逆变实现

node.js - Angular Universal 和 ElementRef/Renderer2.createElement

node.js - grunt-contrib-connect - undefined 不是 connect.static 的函数

javascript - 如果日期相同则运行函数

c# - 需要从 C# 中的 ArrayList 中删除值

c# - MEF - 是否必须以某种方式设置导入或者它们可能为空?