![]() |
1
8
这是做不到的。 正如您所知,Javascript是客户端的,任何客户端代码都必须被视为潜在的危害,因为您无法控制它。
根据评论请求,以下是总体思路: 首先,在服务器上,计算一个随机字符串作为salt。每一个请求都应该是唯一的。这根绳子的作用是防止 rainbow table attacks . 现在,单独保存这个字符串,还要创建另一个字符串,它是随机字符串和验证码答案的串联。对于这个新的组合字符串,您将生成它的哈希(例如,SHA-1)。
随机字符串和散列值都需要放置在页面中,javascript才能读取。 在客户端,当用户回答Captcha时,获取随机字符串并将其与答案连接起来(明白了吗?)。拿着这根绳子,你可以用 SHA-1 JQuery plugin 散列并将其与您发送的预先计算的散列进行比较。
如果匹配,它(几乎)肯定是正确的答案。如果没有,那就100%错了。 |
![]() |
2
1
|
![]() |
3
0
我想最好的办法是5或10 ). |
![]() |
Haim Ohayon · 这些链接之间有什么区别? 2 年前 |