2012-03-11 6 views
0

저는 base64에 초보자입니다. 나는 몇 가지 검사를했다. 내가 터미널에서 "응웬 트란 베트남 A"를 인코딩 할 때 나는 약간 stranges에게 이 기본 64 인코딩에서 올바른 문자열은 무엇입니까?

를 보았다, 그것은 생산 :

vietiPhone:~ vietnt$ echo "Nguyen Tran Viet A" | openssl enc -base64 
Tmd1eWVuIFRyYW4gVmlldCBBCg== 

을하지만 그때 내가 (목표 - C에서) 일부 libs와 실행, 그것은 생산 :

Tmd1eWVuIFRyYW4gVmlldCBB 

맞습니까?

감사합니다.

답변

3

echo은 출력 끝에 EOL을 생성하므로 OpenSSL로 인코딩됩니다. -n 옵션을 시도해보십시오 echo 명령 에서 문자열 STDOUT\n를 추가하기 때문에

$ echo -n "Nguyen Tran Viet A" | openssl enc -base64 
Tmd1eWVuIFRyYW4gVmlldCBB 
+0

귀하의 지원에 부탁드립니다 –

2

이입니다. 그것을 막기 위해서. 다음 구문을 사용하십시오.

echo -n "Nguyen Tran Viet A" | openssl enc -base64 
+0

귀하의 지원을 부탁드립니다 –

2

차이점은 줄 끝 문자입니다. "echo"를 사용하면 개행 문자를 출력합니다 :

base64 -D | od -c 
Tmd1eWVuIFRyYW4gVmlldCBBCg== 

0000000 N g u y e n  T r a n  V i e t 
0000020  A \n              
0000023 

ObjC 예제에는 개행 문자가 없습니다.

base64 -D | od -c 
Tmd1eWVuIFRyYW4gVmlldCBB 

0000000 N g u y e n  T r a n  V i e t 
0000020  A               
0000022 

없음 끝나는 줄 바꿈 : 당신은 아마 생산

[@"Nguyen Tran Viet A" base64Encode] 

같은 것을했다. 그래서 그들은 모두 정확합니다 - 당신은 약간 다른 것들을 인코딩했습니다.

+0

설명 주셔서 감사합니다 –

관련 문제