[SourceMod] base64 인코딩/디코딩 라이브러리

Posted by subkarsei2
2015. 1. 22. 12:03 Info/Tips/Programming

이 라이브러리는 PHP 등 서버 간으로 전달할때 도중에 문자열을 치환해야하는 경우가 생깁니다.

문자가 깨져서 전송되거나 인식문자로 인한 오류 등 제대로 전송이 안되는 경우가 있습니다.


그걸 보완해주기 위한 함수입니다.


EncodeBase64


EncodeBase64(String:sResult[], len, const String:sString[], sourcelen=0)


문자열 또는 바이너리 데이터를 Base64로 인코딩합니다.


sResult: 인코딩된 Base64 결과값을 위한 저장소 버퍼입니다.

len: 저장소 버퍼의 최대 길이입니다.

sString: 인코딩 할 문자열 또는 바이너리 데이터를 넣는 곳입니다.

sourcelen (선택): 입력값으로부터 읽을 byte들로 구성되어진 문자 또는 길이의 수입니다. 이것은 텍스트 문자열을 위해서는 필요가 없지만, 바이너리 데이터에서는 end-of-line 문자가 없기 때문에 중요합니다.


Return: Base64 문자열의 길이를 리턴합니다.


DecodeBase64


DecodeBase64(String:sResult[], len, const String:sString[])


Base64 문자열을 디코딩합니다.


sResult: 디코딩된 Base64 결과값을 위한 저장소 버퍼입니다.

len: 저장소 버퍼의 최대 길이입니다.

sString: 디코딩 할 Base64 포멧으로 치환된 문자열을 넣는 곳입니다.


Return: 디코딩된 데이터의 길이를 리턴합니다.


Base64MimeToUrl


Base64MimeToUrl(String:sResult[], len, const String:sString[])


일반적인 Base64 문자열을 URL 주소에 알맞게 대체하도록 변환합니다.


sResult: URL 주소에 알맞는 Base64 결과값을 위한 저장소 버퍼입니다.

len: 저장소 버퍼의 최대 길이입니다.

sString: 대체할 Base64 포멧으로 된 문자열을 넣는 곳입니다.


Return: 작성되어진 cell들의 수를 리턴합니다.


Remember: 결과값은 입력 문자열과 동일한 길이입니다.


Base64UrlToMime


Base64UrlToMime(String:sResult[], len, const String:sString[], sourcelen)


URL 주소에 알맞는 Base64 문자열을 일반적인 Base64 문자열로 변환합니다.


sResult: 일반적인 Base64 문자열 결과값을 위한 저장소 버퍼입니다.

len: 저장소 버퍼의 최대 길이입니다.

sString: 대체할 URL 주소에 알맞는 Base64 문자열을 넣는 곳입니다.


Return: 작성되어진 cell들의 수를 리턴합니다.


Remember: 결과값은 입력 문자열과 동일한 길이입니다.



다운로드


base64.zip



참고로 오역이 있을 수 있습니다.


출처: '[INC] Base64 Encoding and Decoding library functions' -  http://forums.alliedmods.net/showthread.php?t=101764