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