C++Builder6.0中使用memcpy遇到奇怪的问题

stefanie2523 2013-06-01 12:09:55
void AES::Cipher( BYTE* input, BYTE* output,int len)
{
output=new BYTE[len];
BYTE sinput[16];
BYTE soutput[16];
for(int i=0;i<len/16;i++)
{
memcpy(sinput,input+i*16,16);
Cipher(sinput,soutput);
memcpy(output+i*16,soutput,16);
}
ShowMessage("!");
if(len%16!=0)
{
memcpy(sinput,input+16*(len/16),len%16);

for(int i=len%16;i<(16-len%16);i++)
{
sinput[i]=0x00;
Cipher(sinput,soutput);

}
memcpy(output+16*(len/16),soutput,16);
}

}


我传进去的input大小等于len,如len=352;前面的i<11之前的memcpy(output+i*16,soutput,16);都好好的,output大小一直是300多,到i=11的时候突然刷成160!!这是为什么?
...全文
125 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
庄鱼 2013-06-02
void AES::Cipher( BYTE* input, BYTE* *output,int len)//------------ { *output = new BYTE[len];//------------ ...
回复
stefanie2523 2013-06-01
最后只能用文件的方式了。。
回复
stefanie2523 2013-06-01
引用 1 楼 FreeFice 的回复:
void AES::Cipher( BYTE* input, BYTE* output,int len)
{
 output=new BYTE[len];   //------------??有效吗?外面能读取吗?
     BYTE sinput[16];
     BYTE soutput[16];
     for(int i=0;i<len/16;i++)
     {
       memcpy(sinput,input+i*16,16);
       Cipher(sinput,soutput);
       memcpy(output+i*16,soutput,16);
     }
     ShowMessage("!");
     if(len%16!=0)
     {
     memcpy(sinput,input+16*(len/16),len%16);

     for(int i=len%16;i<(16-len%16);i++)
     {
       sinput[i]=0x00;
       Cipher(sinput,soutput);

     }
      memcpy(output+16*(len/16),soutput,16);
     }

}
源代码中那行注释掉了,,有没有那个都一样,还是不行的
回复
stefanie2523 2013-06-01
哦,那个我在源代码中注释掉了。。我外面有定义的
回复
庄鱼 2013-06-01
void AES::Cipher( BYTE* input, BYTE* output,int len)
{
 output=new BYTE[len];   //------------??有效吗?外面能读取吗?
     BYTE sinput[16];
     BYTE soutput[16];
     for(int i=0;i<len/16;i++)
     {
       memcpy(sinput,input+i*16,16);
       Cipher(sinput,soutput);
       memcpy(output+i*16,soutput,16);
     }
     ShowMessage("!");
     if(len%16!=0)
     {
     memcpy(sinput,input+16*(len/16),len%16);

     for(int i=len%16;i<(16-len%16);i++)
     {
       sinput[i]=0x00;
       Cipher(sinput,soutput);

     }
      memcpy(output+16*(len/16),soutput,16);
     }

}
回复
相关推荐
发帖
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
帖子事件
创建了帖子
2013-06-01 12:09
社区公告
暂无公告