2013-10-30 2 views
1

이전 개발자가 ActiveCrypt.Crypt이라는 ASP 개체를 사용하여 사용자 암호를 데이터베이스로 보내기 전에 암호화 한 프로젝트를 상속했습니다."="로 끝나는 base64 이외의 다른 인코딩 방법이 있습니까?

이 호출은 모드 7의 encryptvariant() 함수를 사용합니다. 여기서 찾을 수있는 유일한 문서는 encrpytion이 3DES (회사는 현재 사용되지 않음)임을 나타냅니다. 문제는 함수에서 파생 된 값이 base64로 인코딩 된 문자열로 나타나는 것입니다 (후행 단일 및 이중 "=="은 죽은 포기입니다).

"="또는 "=="으로 끝나는 다른 인코딩이 있습니까? 이 ActiveCrypt 객체에 익숙한 사람이 있습니까? 키를 사용하여 암호를 인코딩 한 3DES를 시도한 다음 base64로 변환했지만 운이 없었습니다. 나는 또한 개발자가 인수를 바꾼 경우 키와 암호를 뒤집어 썼다. 어떤 도움을 주시면 감사하겠습니다.

abcdefg: xiupz3RT148= 

123456: iDLXPSPPjd4= 

test: AWulSF10FR0= 

1234567890: 8I48MAg9YWvE3y52VfMYew== 
+1

물론 Base64와 비슷합니다. 그렇지 않다고 믿을만한 이유가 있습니까? 알려지지 않은 (또는 부분적으로 알려진) 암호화 체계의 Base64 인코딩 된 출력을 보게 될 확률이 높습니다. –

+0

[Base64의 모든 변형] (http://en.wikipedia.org/wiki/Base64#Implementations_and_history)으로 확인하셨습니까? –

답변

0

정상적인 base64로 인코딩 8, 16 바이트와 같은 모습을 보여 인코딩 (따옴표없이)

키 "키"를 사용하여 몇 가지 예입니다. Base64는 4 바이트를 사용하여 3 바이트를 인코딩합니다. DES 및 3DES는 8 바이트의 블록 크기로 작동합니다. 그래서 base64 텍스트의 크기는 블록 크기를 반영하는 것 같습니다. 또한 기본 64 디코딩의 출력은 완전히 무작위로 보입니다.

따라서 base64 디코딩 후에는 8 또는 16 바이트가되며, 그러면 해독해야합니다. 물론 블록 모드와 패딩 모드처럼 키는 우리에게 알려지지 않았습니다. 그래서 당신은 그 자신을 찾아야 할 것입니다. 키가 제공되지 않으면 응용 프로그램 내에서 하드 코딩 될 수 있습니다.

해피 헌팅.