YouTube URL을 base64로 다시 변환할 수 없습니다.

YouTube URL을 base64로 다시 변환할 수 없습니다.

YouTube URL을 base64로 다시 인코딩하려고 하면 = 뒤의 값은 처음 두 글자를 제외하고는 변경되지 않았습니다. 이미 base64에 있습니까? 변환된 URL:http://www.youtube.com/watch?v=CvUN8qg9lsk

출력(b64): http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DCvUN8qg9lsk

왜 같은가요?

답변1

YouTube URL을 base64로 다시 인코딩하려고 하면 =처음 두 글자를 제외하고 기호 뒤의 값이 변경되지 않았습니다. 마지막 부분이 이미 base64에 있습니까?

마이너스 =로 변환되는 기호는 %3D이미 CvUN8qg9lskBase64로 인코딩되어 있습니다.

왜 똑같은가요?

@LPChip이 지적한 것처럼, 사용 중인 기능은 URL의 특수 문자( :, /, 및 )만 해당하는 16진수(일반 문자가 아님)로 ?변환 하는 URL 인코더입니다.+=

Base64에는 다른 인코딩도 포함되어 있습니다. 그렇죠?

URL 인코딩은 Base64 인코딩의 한 형태로 간주되지만 해당 용어가 잠재적으로 오버로드될 수 있다는 점에 유의할 가치가 있습니다. 당위키피디아(강조 추가):

"Base64는유사한 바이너리-텍스트 인코딩 체계 그룹ASCII 문자열 형식의 이진 데이터를 64진수 표현으로 변환하여 나타냅니다."

간단히 말해서, base64사용 중인 기능은 인코딩/디코딩을 위한 것이 아닙니다 CvUN8qg9lsk.

작은 참고 사항으로, (패딩)을 추가 하고 예를 들어 "일반" Base64 인코더/디코더를 사용하여 =번역하려고 하면 이것이 작동할 수 있습니다. CvUN8qg9lsk=즉, 가치 있는 것(즉, 인간에게 의미 있는 것)을 얻을 가능성은 거의 없습니다. YouTube가 ID를 얻기 위해 사용하는 값은 Google/YouTube 외부의 어떤 것과도 관련이 없는 매우 구체적인 알고리즘의 산물일 가능성이 높습니다.

관련 정보