QRコードの解析をしてみる

PayPayや楽天Payをはじめ、QRコード決済が一気に広がりましたね。
決済だけではなく、名刺やら観光スポットやらでやたらと見かけます。
しかしその仕組を知らずに使っているのは技術者として如何なものか。
ということでQRコードの勉強ついでに(簡易的な)QRコードの解析プログラムを作ってみました。

QRコードの特徴について調査

  • 作ったのは日本(デンソー)
  • 最大30%(iQRという新しい規格だと50%)の誤り訂正で汚れに強い
  • オープンソース

とのことです。

解析について

例として下図のQRコードを扱います。読み取るとわかりますが、内容は文字列で「qrcode」です。

勉強なので小さくて基本的なQRコードを扱います。 新しい規格だと機能もりもりらしいです。

QRコードの構造はほかサイトでも解説がありますが以下のように

大体以下のステップで解析します。誤り訂正とかその他いろいろあるようですが考えていません。

  1. マスクパターン参照子の取得
  2. マスクの解除
  3. データ列の取得
  4. モード指示子の取得
  5. 文字数指示子の取得
  6. コード語の取得

(1)マスクパターン参照子の取得

(2)マスクの解除

(3)データ列の取得

(4)モード指示子の取得

(5)文字数指示子の取得

(6)コード語の取得

余談

QRコード決済はOrigami派です。QRコード決済の先駆けなのに、後発にシェアを持っていかれたやつです。こういうの好き。 クレジットカードのポイントとKyashというプリペイドサービスを併用すると常時5%還元を狙えます。おすすめ。