dmtxreadを使用してスキャンされたデータ行列を読み取る方法は?

dmtxreadを使用してスキャンされたデータ行列を読み取る方法は?

プライベート2096ビット暗号化RSAキーから生成されたデータ行列を読み取ろうとしています。

次のコマンドを使用してキーがgpg生成され、PDFとして印刷されます。

gpg --export-secret-key MY_PRIVATE_KEY_ID | paperkey --output-type raw | dmtxwrite -e 8 -f PDF > ~/key.pdf

その後、印刷key.pdfしてスキャンして次のjpgファイルを作成しました。

ここに画像の説明を入力してください。

次に、次のコマンドを使用して秘密鍵を再作成したいと思います。

dmtxread /path/to/image.jpg | paperkey --pubring ~/.gnupg/pubring.gpg > my-regenerated-private-key.gpg

ただし、このコマンドはdmtxread何も印刷せずにstdoutを返します1。以下を-C 10000使って-q 5エラーを修正しました。また、より高い解像度のスキャンを試してみました(DPIはわかりませんが、4MBで、正方形が明確に定義されていました)。コントラストの許容誤差を使用して調整しましたが、すべての-t 20結果-t 5は同じでした(ピクセルをスキップする必要がありましたが)、-S 5この大容量ファイルを使用すると30分で完了できます。

試してみました--verboseが、何も印刷されませんでしたstdout(または私が知っている限り、診断ファイルも印刷されませんでした)。

-Dまた、診断イメージを生成するオプションも試しました。しかし、結果についてどのように考えるべきかはよくわかりません。

ここに画像の説明を入力してください。

明らかに、いくつかの境界のために困難を経験しているようですが、なぜ、どのようにより堅牢になるのかはよくわかりませんdmtxread

次のステップは、回復された秘密鍵を使用してダミーファイルを復号化することですが、明らかに失敗しました。

これが難しすぎるのは残念です。コマンドラインツールを使用してこれを行う簡単な方法がない場合は、libdmtxすぐに使用できる他のツールがありますか?

重要:言うまでもなく、この秘密鍵をオンラインで共有したので、実際の暗号化にこの秘密鍵を使用しないでください。秘密鍵を絶対に共有しないでください。

答え1

あなたの画像からデータを取得したようです。
私は次のことをしました。

  1. キムプロを開く
  2. 色 - >しきい値
  3. スライダを中央に配置し(選択した正確な値が記憶されない)、[OK]をクリックします。
  4. 画像->キャンバスサイズ
  5. 比率を選択
  6. キャンバスサイズ:幅:160%
  7. キャンバスサイズ:高さ:120%
  8. オフセット:「中央」をクリックしてください。
  9. サイズを変更するにはクリックしてください。
  10. ツール->変形ツール->回転ツール
  11. 角度:-0.50と回転クリック(これを行う前に垂直ガイドを追加すると便利です)
  12. ファイル - >別名でエクスポート
  13. ファイル名を選択して[エクスポート]をクリックします(すべてのデフォルト値を使用)。

以下は、すべての手順を完了した後に取得した画像です。
固定スキャン

dmtxreadを実行すると、即時結果(1秒未満)が得られます。
dmtxread --shrink=2 c8wcN1B.jpg > quant.paperkey
サイズは1428バイトで、最初の2つのオクテットはバイナリpaperkey形式のように見えます。
確認する生成されたファイル、あなたはできますここでダウンロードしてください

答え2

私はdmxtreadを使用して22x22または26x26のより単純なデータ行列バーコードをデコードしています。 -Sスキップピクセルパラメータを設定すると、-S2(1ピクセルずつスキップ)に設定すると役立ちますが、より高い数字をスキップすると画像(プラスチックに印刷されたバーコード写真)のデコードの可能性が低下します。

dmtxread -n -v -S2 -N1 -D imagename.png 

これは私にとって一般的なコマンドです。ここで -N は、1 つの文字列をデコードしてから検索を停止するという意味です (私のバーコードには文字列が 1 つだけ含まれているからです)。見つかったようにデコードが失敗すると、新しいコマンドプロンプト行が返されます。

診断画像を見ると、暗い左端と下端にはほとんどアクティビティがないことがわかります。ここでは、dmtxがバーコードを見つけ、空間の中央に移動してピクセルを読み始めます。私の画像は暗いエッジでより多くの活動を見せる傾向があります。

画像は十分に鮮明に見えますが、-tパラメータはあまり役に立ちません。このパラメータは画像のデコードの可能性には役立ちません。

あなたのコマンドは、dmtxreadがデコードを実行し、あなたが指定した.gpgファイルにキーを書き込むように設計されていると仮定します。今、それを削除し、dmtxreadにシェルまたは単純なテキストファイルとして出力させることで、潜在的なエラーの原因を取り除きます。

関連情報