developer tip

일괄 적으로 base64 디코딩

optionbox 2020. 10. 14. 07:45
반응형

일괄 적으로 base64 디코딩


배치를 사용하여 설치 프로그램을 만들려고합니다. 물론 설치 프로그램은 설치할 파일로 구성되어야하므로 base64로 파일을 인코딩하고 간단히 디코딩하여 대상에 기록 할 수 있습니다.

물론 Windows base64에 Linux 상자에 포함 된 도구 와 같은 것이 있다면 내 작업은 매우 쉬울 것 입니다. 그러나 단순히 거기에 있지 않기 때문에 배치 파일을 사용하여 base64 콘텐츠를 완전히 디코딩하는 방법이 있습니까? 그리고 이것을 어떻게 성취 할 수 있습니까?

도움을 주시면 감사하겠습니다.

(실험 일 뿐이 라 비 효율성 등은 걱정하지 않습니다.)


실제로 Windows에는 base64를 인코딩하고 디코딩하는 유틸리티가 있습니다.-CERTUTIL

이 명령을 도입 한 Windows 버전을 잘 모르겠습니다.

파일을 인코딩하려면 :

certutil -encode inputFileName encodedOutputFileName

파일을 디코딩하려면 :

certutil -decode encodedInputFileName decodedOutputFileName

CERTUTIL에 사용할 수있는 동사와 옵션이 많이 있습니다.

사용 가능한 거의 모든 동사 목록을 얻으려면 :

certutil -?

특정 동사에 대한 도움말을 보려면 (예 :-인코딩) :

certutil -encode -?

거의 모든 동사에 대한 완전한 도움말을 얻으려면 :

certutil -v -?

불가사의는 -encodehex동사에 표시되지 certutil -?certutil -v -?. 그러나 certutil -encodehex -?. 또 다른 편리한 기능입니다 :-)

최신 정보

David Morales의 주석과 관련하여, 머리글이나 바닥 글 줄없이 base64 문자열을 만들 수 있는 동사 에 대한 문서화 된 유형 옵션잘못되었습니다-encodehex .

certutil [Options] -encodehex inFile outFile [type]

유형 1은 머리글 또는 바닥 글 줄없이 base64를 생성합니다.

사용 가능한 유형 형식에 대한 간략한 목록은 https://www.dostips.com/forum/viewtopic.php?f=3&t=8521#p56536참조 하십시오 . 사용 가능한 형식에 대한 자세한 내용은 https://www.dostips.com/forum/viewtopic.php?f=3&t=8521#p57918을 참조 하십시오 .

조사되지는 않았지만 -decodehex동사에는 선택적 후행 유형 인수도 있습니다.


다음은 base64를 인코딩하는 base64encode.bat라는 배치 파일입니다.

@echo off
if not "%1" == "" goto :arg1exists
echo usage: base64encode input-file [output-file]
goto :eof
:arg1exists
set base64out=%2
if "%base64out%" == "" set base64out=con 
(
  set base64tmp=base64.tmp
  certutil -encode "%1" %base64tmp% > nul
  findstr /v /c:- %base64tmp%
  erase %base64tmp%
) > %base64out%

참고 URL : https://stackoverflow.com/questions/16945780/decoding-base64-in-batch

반응형