- 论坛徽章:
- 0
|
今天看到下面这个函数
- 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 编辑 ] |
|