在 Javascript 中使用 Crypto-js 加密,在 PHP 中使用 mcrypt 解密?
Posted
技术标签:
【中文标题】在 Javascript 中使用 Crypto-js 加密,在 PHP 中使用 mcrypt 解密?【英文标题】:Encryption using Crypto-js in Javascript, Decrypt in PHP with mcrypt? 【发布时间】:2012-04-11 07:08:53 【问题描述】:我有一个简单的 javascript 游戏,它通过将分数添加到 URL 来向 php 发送分数,然后 PHP 使用 GET 来获取它。显然,这很容易作弊。我想让作弊游戏变得有点烦人。我不希望它是诺克斯堡或类似的东西。确实没有意义,但让你的分数更难改变一点就好了。
所以我希望使用 Crypto-JS 对数字分数进行加密,然后在 PHP 中对其进行解密。我不知道如何使用 Crypto-JS 获得与 PHP 的 mcrypt 相同的答案。
我意识到任何人都可以阅读代码并弄清楚如何用 JavaScript 破解它;没关系。这根本不是敏感数据,如果他们遇到那么大的麻烦,他们付出的努力比赢得比赛所需的还要多。
打乱分数的其他方法也可以;任何真正需要普通高中用户投入超过 5 分钟的工作才能“破解”的东西对我的目的来说已经足够了。有什么建议吗?
加密 JS:http://code.google.com/p/crypto-js/
【问题讨论】:
请向我们展示您的尝试!也许我们可以修改您的代码以获得正确的结果... 【参考方案1】:您可以尝试以如下方式发送值:
whatever.php?score=UNHASHED_SCORE&key=MD5(SALT . SCORE)
然后在 PHP 中检查:
$_GET['score'] == md5(SALT . $_GET['key'])
其中 $salt 值是一些您知道其值的随机字符串。
【讨论】:
很好,也不会弄乱原代码,只是添加一些检查,便于调试。不过,我会特别注意 MD5 哈希方法的输入的(字符)编码,否则您可能会遇到麻烦。以上是关于在 Javascript 中使用 Crypto-js 加密,在 PHP 中使用 mcrypt 解密?的主要内容,如果未能解决你的问题,请参考以下文章
javascript 使用JavaScript在脚本中插入脚本
javascript 在JavaScript中使用“this”的不同方式
JavaScript 在Javascript中使用“typeof”运算符