これは私の最初の質問ですので、私が間違っているかどうか教えてください!文字列の完全性を保証する私の方法は安全ですか?
私はEclipseでAndroidアプリケーションを構築しており、バーコードリーダーでQRコードを読み取っています。これはすべてうまく動作しますが、ユーザーに「報酬」を含む「特殊ケース」のバーコードがあることがあります。
この「報酬」は、特別にフォーマットされた文字列に含まれています。この文字列は、システムを不正行為しようとする人々によって改ざんされる可能性があります。これは大きな問題ではありませんが、私はそれを防ぐための措置をとっています。今私の質問は...これらのステップはどれくらい安全ですか?そのような
***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];
このAは
***Code-v1.0:31c8f90a4050:1001:0:C:1337
***Code-v1.0:6a9c4e8d92da:1002:C4D23A1B:C:1337
そうは次のように文字列がフォーマットされています。ここでは
は、文字列の2つの例がありますこれを行うには安全な方法ですが、コードはハッシュに影響を与えることなく改ざんされているようには見えませんが、誰かがハッシング・スキームを試してみれば、それはすべて無意味になります(これは、サーバ側にあるように「見つけ出す」というリスクはありませんが、誰かがそれを見つけ出すならば)。
あなたの考えは?
MD5が安全でないと思われる場合は、SHA-256またはSHA-512を使用できます。 – fiction
これは合法的にこれのセキュリティを向上させるか、それともそれほど差はないでしょうか? – R4000