out[i*4+j]=state[j][i];Р }Р }Р}Рchar *encrypt(char *str, char *key) Р{Р int i,j,Nl;Р?double len;Р?char *newstr;Р Nk = Nc / 32;Р Nr = Nk + 6;Р len= strlen(str);Р Nl = (int)ceil(len / 16);Р //printf("Nl:%d\n", Nl); Р newstr = (char *)malloc(Nl*32);Р memset(newstr,0,sizeof(newstr));Р for(i=0;i<Nl;i++)Р {Р for(j=0;j<Nk*4;j++)Р {Р Key[j]=key[j];Р in[j]=str[i*16+j];Р }Р KeyE*pansion();Р Cipher();Р??memcpy(&newstr[i*32], out, 32); Р }Р return newstr;Р}Рchar *decrypt(char *str, char *key) Р{Р int i,j,len,Nl;Р?char *newstr;Р Nk = Nc / 32;Р Nr = Nk + 6;Р len= strlen(str);Р Nl = (int)ceil(len / 16);Р newstr = (char *)malloc(16*Nl);Р memset(newstr,0,sizeof(newstr));