如何使用 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
,也許還有另一個工具可以為我做到這一點?重要:不用說我永遠不會使用這個私鑰進行任何實際的加密,因為我已經在網上分享了它。你永遠不應該分享你的私鑰。
看起來,我設法從您的圖像中獲取數據。
我做了以下事情:
- 用 GIMP 打開
- 顏色 -> 門檻值
- 將滑塊定位在中心附近(我不記得我選擇的確切值),然後點擊確定
- 圖像 -> 畫布大小
- 選擇百分比
- 帆布尺寸:寬度:160 %
- 帆布尺寸:高度:120 %
- 偏移:點擊“中心”
- 點擊調整大小
- 工具 -> 變換工具 -> 旋轉工具
- 角度:-0.50 並點擊“旋轉”(在此之前添加垂直參考線很有用)
- 文件 -> 導出為
- 選擇文件名並點擊導出,然後點擊導出(使用所有預設值)
這是我在完成所有這些步驟後得到的圖像:
執行 dmtxread 會立即給出結果(不到一秒):
dmtxread --shrink=2 c8wcN1B.jpg > quant.paperkey
大小為 1428 字節,前兩個八位字節看起來像二進製紙密鑰格式。