2013-11-14 1 views
0

NSString을 암호화/해독하고 끝에 원래 문자열을 반환하려고합니다. 그 데이터가 암호화 된 후에 NSString과 NSData 사이의 변환을위한 인코딩

NSData *string_data = [string dataUsingEncoding:NSUTF8StringEncoding];

그리고

가/해독 나는 다시 원래의 문자열로 원하는 수행하여 : : 나는 데이터 객체에 문자열을 변환하는 방법은 다음과

NSString *to_string = [NSString stringWithCString:[decrypted_data bytes] encoding:NSUTF8StringEncoding];

인코딩이 일치하는 것 같지만 콘솔에 to_string을 인쇄하려고하면 null이 표시됩니다. 모든 종류의 인코딩 설정을 시도했습니다. 그것은 작동하지 않는 것 같습니다.

+0

가능한 복제 http://stackoverflow.com/questions/6103579/nsdata-from-nskeyedarchiver-to-nsstring/17593009#17593009 base64 인코딩 사용 –

+0

나는 가능한 복제품이 아닌 것으로 생각합니다. 그 질문은 임의의 * 데이터를 전달하는 문자열로 변환하는 것에 관한 것입니다. 이 질문은 암호 해독 된 데이터를 다시 원래 문자열로 변환하는 것에 관한 것입니다. –

답변

1

사용 :

NSString *to_string = [[NSString alloc] initWithData:string_data encoding:NSUTF8StringEncoding]; 

당신을 NSData에서 얻을 bytes 버퍼가 널 (null)로 종료되는 것이 보장되지 않기 때문에 stringWithCString을 사용하는 것이 안전하지 않습니다.

+0

그 중 하나가 작동하지 않습니다, 또한 전달 된 데이터뿐만 아니라 인코딩을 지정해야합니다. 내가 시도하고'[NSString alloc] initWithData : string_data 인코딩 : NSUTF8StringEncoding]'didn ' 어느 쪽이든 일하십시오. –

+1

@labdulle : 해독 된 데이터'decrypted_data'가 원본 데이터'string_data'와 정확히 일치하는지 확인 했습니까? –

+1

좋은 질문입니다. 해독에 문제가있는 것 같습니다. 나는 바보 야. –