【发布时间】:2011-06-03 10:28:49
【问题描述】:
这是我在这里的第一个问题,如果我做错了,请告诉我!
我正在使用 Eclipse 构建一个 Android 应用程序,并且正在使用条形码阅读器读取 QR 码。这一切都很好,但是,有时会出现包含用户“奖励”的“特殊情况”条形码。
这个“奖励”包含在一个特殊格式的字符串中,这个字符串可能被打算欺骗系统的人篡改。这不是一个大问题,但我已经采取了措施来防止它,现在我的问题是......这些步骤有多安全?
这里有两个字符串示例:
***Code-v1.0:31c8f90a4050:1001:0:C:1337
***Code-v1.0:6a9c4e8d92da:1002:C4D23A1B:C:1337
字符串的格式如下:
***Code-v1.0:HASH:CODE_ID:REDEEM_ONCE:CODE_ACTION:ARG
(REDEEM_ONCE has 3 possible values)
我的哈希系统是这样工作的:
salt = "************:***"; // didnt think it wise to post this, but the length is
// the same and its alphanumeric
MD5 = salt . ":" . codeParts[2] . codeParts[5] . codeParts[4] . ":" . codeParts[3] . ":";
MD5 .= codeParts[4] . codeParts[3] . ":" . codeParts[5] . codeParts[2];
这是一种安全的方法吗,代码似乎无法在不影响哈希的情况下被篡改,但哈希肯定会发生冲突,如果有人制定了哈希方案,这一切都变得毫无意义(这风险要小一些只是在服务器端“找到”它,但如果有人想出来的话)。
你有什么想法?
【问题讨论】:
-
如果 MD5 看起来不安全,您可以使用 SHA-256 或 SHA-512。
-
这会合法地增加它的安全性,还是几乎没有什么不同?
标签: android security md5 barcode hash