12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #ifndef __BASE64_CODE__
- #define __BASE64_CODE__
- #pragma once
- class CBase64
- {
- public:
- CBase64(void);
- ~CBase64(void);
-
-
- static int CalcBase64Len(IN const size_t& len) {
- return (len / 3 + (len % 3 ? 1 : 0)) * 4 + 1;
- }
- static void binToBase64(IN const unsigned char *pbinary, IN size_t nbinaryLen, OUT char *pOutBase64);
-
-
- static int CalcBinLen(size_t len) {
- return len / 4 * 3;
- }
- static int base64ToBin(IN const char *pBase64, OUT unsigned char *pbinary, IN size_t maxLen);
- private:
- static char decode64(unsigned char ch) {
- return ch < 128 ? sm_base64val[ch] : BAD;
- }
- private:
- enum {BAD = -1};
-
- static const char sm_base64digits[65];
-
- static const char sm_base64val[128];
- };
- #endif
|