目前我们正在举办一场非常好的比赛.不幸的是,我们让所有那些正在运行脚本的作弊者自动投票支持他们的参赛作品.我们已经通过手工查看数据库条目看到了一些作弊者 - 例如,使用相同浏览器的5星评级完全是所有70分钟.现在随着用户群的增长,识别它们变得越来越难.
我们到目前为止做了什么:
有谁知道我们如何使用PHP脚本在我们的数据库中找到模式,或者我们如何更有效地阻止它们?
任何帮助将非常感谢...
看来密码学中有一些有趣的事情发生了:最近出现了第一个同态加密方案(解释,HT).粗略地说,它是编码的方式x进入f(x),这样你可以计算f(x+y)很容易地知道f(x)和f(y)即使你不能轻松地恢复x和y(和相同的f(x*y)).
这种方案的实际应用是什么(一旦建立安全性)?对我来说,似乎他们可以更容易地编写用于操纵私有数据的算法.
这是我的想法:
示例:我有银行A,B,C的帐户.实体X想要确认我总共超过1000美元; 它很乐意接受A,B,C或D银行的声明,但遗憾的是我在任何单一账户中都没有足够的资金.银行A使用我的公钥加密有关我500美元的信息; 同样,银行B和C分别加密我有200美元和300美元的信息.他们将这些数据发送给X,他们将这些数据添加到一些数字中,我证明实际上加密了1000美元(通过使用我的公钥加密1000美元并证明结果是相同的).我已经证明了一些事情,但没有透露X每个帐户中我有多少钱.
另一个例子:好公民X_1,......,X_n正在合作选择两个候选人中的一个,其中一个是拿铁咖啡的自由人A l,而另一个是B bble的枪支爱好者(所有名字都是虚构的).他们认为他们希望投票是私密但快速的.他们以(1, vote_A, vote_B, vote_None)加密的矢量格式将选票发送给选举委员会,选举委员会将其公开添加,并在表格中获得结果(count, count_A, count_B, count_None).经过检查后count = count_A + count_B + count_None,官员宣布其中一名候选人的胜利,之后法官宣布选举因电子投票无关而在未来10年内在法庭上进行了争议,但是,嘿,这不是我的无论如何问题.
注意: - 我相信这些特定的例子甚至可以用于RSA,因为它只需要在一次操作中具有同态性.希望我们可以通过更多操作获得更有趣的东西 - 所以,举出示例!
我特别希望看到包含有可能在实践中使用的代码和/或开发框架的答案,原因是SO不是理论计算机科学讨论板.
同形算法,重复下面在评论中所说的内容,允许创建一个程序,在不知道它们的情况下管理数据.不幸的是,程序的类型有些限制:你不能if (x=0) ...因为x加密而且每一步都很慢(涉及一些格子).
在我的Android应用程序中,我想在某个时间点提示用户对Android市场中的应用进行评级.
在搜索了一种方法之后,我在这个网站上找到了一些代码.这段代码似乎运行得很好.
但遗憾的是,当Android市场未安装在用户的手机上时,此代码似乎会引发"强制关闭"错误消息.有没有办法检查Android市场是否已安装,如果没有,请不要尝试执行代码?
引发错误的行可能就是这个,因为它无法解析URI:
mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + APP_PNAME)));
Run Code Online (Sandbox Code Playgroud)
顺便说一下,那个代码还有其他可以改进的东西吗?
编辑:
几年后,我将所有代码放入一个小型库项目:GitHub上的AppRater
我打算在我运行的网站上添加一些投票/投票按钮.这似乎很容易,但我想阻止人们多次投票.一种解决方案是让他们在允许他们投票之前注册,但我不想强迫他们注册.
这样做有一种相当简单的方法吗?检查IP地址似乎不是一个好的解决方案,因为多个用户可能来自同一个IP地址.
Cookie可能是答案,但精明的用户可以删除cookie.有更好的想法吗?
我正在制作一个小应用程序,允许用户向上或向下投票.我正在使用Django(和它一样新!).
我只是想知道,向用户呈现upvote链接的最佳方式是什么.作为链接,按钮或其他?
我已经在php中使用不同的框架做了类似的事情,但我不确定我是否能以同样的方式做到这一点.我应该有一个上/下投票的方法,然后显示一个链接到用户点击.当他们点击它时,它会执行该方法并刷新页面?
Sooo ......它只是与编程有关,但我认为这是选举日,对吧?有没有一个很好的理由,为什么他们不是,不一定是任何人可以贡献的开源,但开源,任何人都可以检查来源?
在看到最新的SO博客帖子后,我刚刚下载了OpenSTV,关于主持人选举的结果.杰夫写道,他使用OpenSTV进行选举,并提供了一张包含投票数据的投票文件(.blt).
我的问题是:你如何在C#中创建.BLT文件?
以下两种方式我可以想到投票页面是这样做的:
我有兴趣了解两种可能性如何工作以及如何在C#中实现这一点.提前致谢.哦,我希望杰夫看到这个问题,因为他可能会有一个很好的答案......
我不想评分等级为1到10的项目,而是希望进行1对1"战斗".两个项目彼此相邻显示,您可以选择一个您喜欢的项目.基于这些"战斗"结果,算法应计算每个项目的评级.
你可以在Flickchart.com上看到这种方法,用这种方法对电影进行评级.
它看起来像这样:
截图http://i45.tinypic.com/2nv3ugy.jpg
如你所见,如果物品赢得"战斗",物品就会向上推.排名总是根据"战斗"结果而变化.但这不能仅仅取决于胜利报价(这里是54%),因为对抗"泰坦尼克号"比赢得"25小时"左右更难.
有一些事情对我来说还不太清楚: - 收视率是如何计算的?你如何决定哪部电影在排名中位居第一?你必须考虑一个项目获胜的频率以及被打败的项目有多好. - 如何选择哪些项目"打架"?
当然,你无法告诉我Flickchart是如何做到的.但也许你可以告诉我它是如何做到的.提前致谢!
我即将为我的网站写一个投票方法.我想要一种方法来阻止人们两次投票同样的事情.到目前为止,我的想法是:
我的网站不是基于帐户的,虽然它汇总了Twitter数据,因此可以使用Twitter OAuth作为识别手段.
存在哪些现有系统以及它们如何执行此操作?
我想在我的应用程序中实现一个反馈机制 - 基本上是一个分数.要求是:
似乎这与加密理论接近(甚至重叠),但我无法找到任何可以解决这个问题的方法.有没有人有任何特定的算法可以解决这个问题?或者甚至可以使用其他搜索向量来追求它?
voting ×10
php ×2
security ×2
.net ×1
ajax ×1
algorithm ×1
android ×1
c# ×1
charts ×1
cryptography ×1
django ×1
encryption ×1
open-source ×1
openstv ×1
privacy ×1
python ×1
ranking ×1
rating ×1
statistics ×1
user-input ×1