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. 슬라이더를 중앙에 배치하고(선택한 정확한 값이 기억나지 않음) 확인을 클릭합니다.
  4. 이미지->캔버스 크기
  5. 비율 선택
  6. 캔버스 크기: 너비: 160%
  7. 캔버스 크기: 높이: 120%
  8. 오프셋: "중앙"을 클릭하세요.
  9. 크기를 조정하려면 클릭하세요.
  10. 도구->변형 도구->회전 도구
  11. 각도: -0.50 및 회전 클릭(이 작업을 수행하기 전에 수직 안내선을 추가하는 것이 유용함)
  12. 파일->다른 이름으로 내보내기
  13. 파일 이름을 선택하고 내보내기를 클릭합니다(모든 기본값 사용).

다음은 모든 단계를 완료한 후 얻은 이미지입니다.
고정 스캔

dmtxread를 실행하면 즉각적인 결과(1초 미만)가 제공됩니다.
dmtxread --shrink=2 c8wcN1B.jpg > quant.paperkey
크기는 1428바이트이고 처음 두 옥텟은 이진 paperkey 형식처럼 보입니다.
확인하다생성된 파일, 당신은 할 수 있습니다여기서 다운로드하세요.

답변2

저는 dmxtread를 사용하여 22x22 또는 26x26의 더 간단한 데이터 매트릭스 바코드를 디코딩하고 있습니다. -S 건너뛰기 픽셀 매개변수를 설정하면 -S2(한 픽셀씩 건너뛰기)로 설정하면 도움이 되지만 더 높은 숫자를 건너뛰면 이미지(플라스틱에 인쇄된 바코드 사진) 디코딩 가능성이 저하됩니다.

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

이것은 나에게 일반적인 명령입니다. 여기서 -N은 하나의 문자열을 디코딩한 후 검색을 중지한다는 의미입니다(제 바코드에는 문자열이 하나만 포함되어 있기 때문입니다). 발견한 대로 디코딩에 실패하면 새 명령 프롬프트 줄이 반환됩니다.

진단 이미지를 보면 더 어두운 왼쪽과 아래쪽 가장자리에 활동이 거의 없다는 것을 알 수 있습니다. 여기에서 dmtx가 바코드를 찾은 다음 공간의 중앙으로 이동하여 픽셀을 읽기 시작합니다. 내 이미지는 어두운 가장자리에서 더 많은 활동을 보이는 경향이 있습니다.

이미지가 충분히 선명해 보이지만 -t 매개변수는 많은 역할을 하지 않습니다. 이 매개변수는 이미지의 디코딩 가능성에 도움이 되지 않습니다.

귀하의 명령은 dmtxread가 디코딩을 수행한 다음 귀하가 지정한 .gpg 파일에 키를 쓰도록 설계되었다고 가정합니다. 지금은 이를 제거하고 dmtxread가 쉘이나 간단한 텍스트 파일로 출력하도록 하여 잠재적인 오류 원인을 제거하겠습니다.

관련 정보