使用 JavaScript 加密字符串并从服务器端 (Java) 解密

Encrypt A String With JavaScript And Decrypt It From Server Side (Java)

本文关键字:服务器端 Java 解密 串并 JavaScript 加密 字符 字符串 使用      更新时间:2023-09-26

我需要在客户端加密一个字符串并将其发送到服务器。到达那里后,我需要解密它。

使用基于密码的加密是最佳解决方案吗?

我需要它,因为我有一个投票机制,我发送 ajax 帖子来投票一个条目。此机制使用当前用户的 Facebook ID。我的目标是从客户端加密FB id,以避免他们通过发送具有不同ID的请求来破解它。如果发送具有相同ID的第二个帖子,我将阻止投票。

一旦id被解密,我将使用图表检查它是否是真正的FB用户。

Javascript加密在这里无济于事。 任何优秀的侦探/黑客都可以看到客户端上是如何完成的,并查看数据在加密之前是什么,并查看它是如何加密的。

防止用户多次投票的唯一方法是将投票绑定到一个帐户或令牌,您可以在服务器上验证该帐户或令牌,也可以将其绑定到特定用户,这对于用户来说不容易创建许多不同的帐户。 一般来说,你可能无法完全停止它,但你可以让它变得足够麻烦,大多数人不会通过让它需要足够的步骤(包括某种验证码,所以它不能自动化(。

SSL 将保护客户端/服务器通信,但不会阻止客户端执行您不希望它们执行的操作。

">

加密"在这里没有任何意义,正如您已经被告知的那样(因为在加密之前可以操纵客户端加密的值(,SSL当然也不能解决这个问题。

而是将用户的访问令牌发送到服务器。然后要么使用它(/me(发出用户数据请求,要么对其进行调试 - 然后您将知道该请求是真实的,因为用户不能"伪造"其他用户的访问令牌。

考虑到没有身份验证,可以使用HTTP指纹来检查具有不同userID的请求是否来自同一用户。

指纹将从HTTP请求数据创建,例如:

-用户代理
-语言
-知识产权
-字符集

以及 HTTP 请求中存在的其他数据。