2013-08-28 1 views
3

자격 증명을 요구하지 않으려는 자격 증명이 필요한 명령의 일부로 비밀번호가있는 배치 스크립트가 있습니다. 나는 외부 위협에 대해 걱정하지 않지만, 동료에게 가서 암호를 보길 원치 않습니다. 나는 그들을 학대하지 않기를 신뢰하지만, 나는 그것을 전혀 가지지 않을 것입니다.배치 스크립트에서 암호 난독 화

텍스트 파일에 보안 문자열을 저장하면 PowerShell을 사용하여이 작업을 매우 쉽게 처리 할 수있었습니다. 꽤 기본이지만 최소한 일반 텍스트 암호는 없습니다. 그게 내가 정말로 필요한 전부 야.

배치 스크립트에서 암호를 난독성 화하려면 어떻게해야합니까? 여기

echo somewhatsecretpassword>script.bat:pwd 

어떻게 검색 할 수있어 :

첫째, 스크립트의 대체 데이터 스트림에 다소 비밀 암호를 추가 :

+0

타사 도구없이 일괄 적으로 비밀번호를 숨길 수 없습니다. – Endoro

+0

당신은'certutil'을 16 진수 또는 base64 (또는 둘 모두) -> http://ss64.com/nt/certutil.html로 인코딩하려고 할 수 있습니다. 지금 당장 가장 쉬운 방법입니다. – npocmaka

+0

@npocmaka 그럴 수도 있습니다. 암호화 할 필요가 없습니다. 평범한 텍스트가 아닌 것뿐입니다. – tnw

답변

6

당신은 또한 대체 데이터 스트림에 암호를 숨길 수 변수 %p%에 비밀번호 :

for /f "usebackq delims=" %i in (script.bat:pwd) do set p=%i 

배치 파일 자체가 당신 엄마 내에서 예를 들면 다음과 같습니다 :

안전하지 않습니다!

고려하십시오 :이

  • 안전하지 않습니다!
  • 대체 데이터 스트림 (FAT) 특수 문자가 포함 된
  • 암호가 스트림
  • 올바르게 작성 취득하기 위해 탈출해야 할 수도 있습니다 ... 그것은 안전하지 않습니다 모든 곳에서 복사되지 않습니다
+1

환경 변수에 암호를 저장하는 것을 피하기 위해'FOR'에서 즉시 명령 행을 사용할 것을 권장합니다. –

+0

nitpicky 문법 : '[n] 대체 데이터 스트림에서 암호를 숨길 수도 있습니다.' 'an'형식은 다음 단어가 모음 사운드로 시작될 때 항상 사용됩니다 ('a 엔진'과 'engine'비교).솔루션은 제가 찾고 있던 것입니다 - 단지 표면적 인 호기심을 막기에 충분하고 파일을 복사하면 비밀을 잃을 수 있습니다. – Charemer

+0

@Charemer 방금 문제를 해결했는데 두 번째 줄에서 올바르게 처리했습니다 .... – marapet

2

:main 
set a=pas 
set b=rd 
set /p input= 
if %input%==%a%swo%b% goto start 
:start 
<your code here> 
goto main 

같은 암호를 뭔가를 할

은 "암호"이지만, 조금 난독입니다.