//---------------------------------------------------------------------- // '22.02.13 bug fix //---------------------------------------------------------------------- #include #include void encrypt( char*a, char*b, char* key) { char x[128]; int i,j,k,m; k = 0; int n = strlen(key); for (i=0; b[i]!=0; i++) { x[i] = b[i]^key[k++]; k %= n; } m = i; // 8bit -> 6bit // 8bit 0 1 2 // 000000|00, 0000|0000, 00|000000 // 6bit 0 1 2 3 j = 0; for (i=0; i>2; break; case 1: a[j] = (x[i]&0x03)<<4 | (x[i+1]&0xF0)>>4; i++; break; case 2: a[j] = (x[i]&0x0F)<<2 | (x[i+1]&0xC0)>>6; i++; break; case 3: a[j] = x[i]&0x3F; i++; break; } } // ascii文字に変換 for (i=0; i 8bit j = 0; for(i=0; j>4; j++; break; case 1: a[i] = (x[j]&0x0F)<<4 | (x[j+1]&0x3C)>>2; j++; break; case 2: a[i] = (x[j]&0x03)<<6 | (x[j+1]&0x3F); j += 2; break; } } m = i; k = 0; int n = strlen(key); for (i=0; i