- 論壇徽章:
- 0
|
今天看到下面這個函數(shù)
- int util_64to256(char *dst, char *src, char *table)
- {
- unsigned int dw,dwcounter,i;
- char *ptr = NULL;
- dw=0;
- dwcounter=0;
- if (!dst || !src || !table) return 0;
- for (i=0; i<strlen(src); i++) {
- ptr = (char *) index(table, src[i]);
- if (!ptr) return 0;
- if (i%4) {
- dw = ((unsigned int)(ptr-table) & 0x3f) << ((4-(i%4))*2) | dw;
- dst[ dwcounter++ ] = dw & 0xff;
- dw = dw >> 8;
- } else {
- dw = (unsigned int)(ptr-table) & 0x3f;
- }
- }
- if (dw) dst[ dwcounter++ ] = dw & 0xff;
- dst[ dwcounter ] = '\0';
- return dwcounter;
- }
復制代碼
百思不得其解,想不明白為何要如此轉換?感覺好像涉及到加密解密的知識,實在是無法理解,請高手賜教
指點一下這段代碼是想用來做什么的,大致的功能及設計思路又是什么呢
[ 本帖最后由 sa101 于 2007-9-6 16:16 編輯 ] |
|