2014-11-04 2 views
-1

어떤 점에서이 코드를 s?\a?B???p?????과 같이 해독해야하지만 어떤 유형의 인코딩이 사용되었는지는 알지 못합니다. 여기 문자열 해독에 대한 문제

는 디코드 될 수있는 원래의 문자열이다 : c58HzUKIBYUfh3DVm/qa3Q의 ==

string base64Encoded = "c58HzUKIBYUfh3DVm/qa3Q=="; 
string base64Decoded; 
byte[] data = System.Convert.FromBase64String(base64Encoded); 
base64Decoded = System.Text.ASCIIEncoding.ASCII.GetString(data); 

그리고이 s?\a?B???p?????의 결과이다.

누군가 나를 도울 수 있습니까? 어떤 유형의 도움이라도 기쁠 것입니다!

감사합니다.

+0

'Encoding.UTF8.GetString (base64Encoded);가 작동하기를 기대하지만 그 입력과 함께 가비지 문자열이 생깁니다. base64가 인코딩 된 텍스트입니까? - 당신은 * enctypted * - 그게 무슨 뜻이야? –

+1

암호를 해독해야한다고하셨습니다. 바이트 해독의 징후는 없습니다. 계단을 놓치셨습니까? Base64는 일반적으로 * 암호화 *로 간주되지 않으므로 바이트로 완료되어 문자열로 저장할 수 있습니다. 내 생각 엔 실제 암호 해독이 누락 된 것 같습니다. – nvoigt

+0

오, 영어가 제 모국어가 아닌 것을 볼 수 있듯이 때로는 혼란을 겪습니다. Alex, 그게 내 의심이야, 어떤 코딩 유형이 사용되었는지 모르겠다! base64로 문자열을 가져온 경우 해당 코드가 작동합니다. c58HzUKIBYUfh3DVm/qa3Q == ". 해독 된 원래 값은 teste1234입니다. – Pedro

답변

1

출력은 16 바이트입니다. 이것이 바로 블록 크기가 8 또는 16 바이트 인 ECB 또는 CBC 모드의 블록 암호 출력입니다. 그래서 여러분이 얻는 것은 암호문입니다. 이것은 임의의 바이트처럼 보입니다. 무작위 바이트는 텍스트로 직접 볼 수 없으므로 물음표가 표시됩니다. 텍스트로 볼 수있는 일반 텍스트를 가져 오려면 키로 해독해야합니다.

+0

그들은 ECB에서 복어 알고리즘을 사용했는데, 맞습니다. 도와 줘서 고마워요! – Pedro

관련 문제