P
PROSE
Unregistered / Unconfirmed
GUEST, unregistred user!
源程序
AddParityChar(BYTE *buffer)
{
int i,len;
long count=0;
len=strlen((char *)buffer);
for (i=0;i<len;i++)
count+=buffer;
buffer[len]=count%16L+'0';
}
在CSDN问C++专家们的结果
这是一个给一个字符串内容加校验和的程序
AddParityChar(BYTE *buffer)
{
int i,len;
long count=0;
len=strlen((char *)buffer);
for (i=0;i<len;i++)
count+=buffer; // 计算校验和
// 但这里的得到的校验和是long型的,有可能超出ASC码所能
// 表示的范围,把它放到这个字符串中,就可能被当作一个乱码
buffer[len]=count%16L+'0';
// 把这个校验和放到一个ASC码所能表示的范围
// count%16(0-15)
// '0' + (0-15)可以知道选择的范围是:
// “0 1 2 3 4 5 6 7 8 9 :;< = > ?”
}
这段程序很可能是用在通讯程序中,发送段把内容字符串的末端加入这样一个校验和,
接收端对这个字符串做同样的计算,然后比较最后一个字符是不是与计算结果一致,
从而知道数据是否完整,是否被篡改。
现在想改写成Delphi的,我传入一个Char数组达到校验的目的,各位高手帮帮忙,我这先谢过了
折磨我一个多月了
AddParityChar(BYTE *buffer)
{
int i,len;
long count=0;
len=strlen((char *)buffer);
for (i=0;i<len;i++)
count+=buffer;
buffer[len]=count%16L+'0';
}
在CSDN问C++专家们的结果
这是一个给一个字符串内容加校验和的程序
AddParityChar(BYTE *buffer)
{
int i,len;
long count=0;
len=strlen((char *)buffer);
for (i=0;i<len;i++)
count+=buffer; // 计算校验和
// 但这里的得到的校验和是long型的,有可能超出ASC码所能
// 表示的范围,把它放到这个字符串中,就可能被当作一个乱码
buffer[len]=count%16L+'0';
// 把这个校验和放到一个ASC码所能表示的范围
// count%16(0-15)
// '0' + (0-15)可以知道选择的范围是:
// “0 1 2 3 4 5 6 7 8 9 :;< = > ?”
}
这段程序很可能是用在通讯程序中,发送段把内容字符串的末端加入这样一个校验和,
接收端对这个字符串做同样的计算,然后比较最后一个字符是不是与计算结果一致,
从而知道数据是否完整,是否被篡改。
现在想改写成Delphi的,我传入一个Char数组达到校验的目的,各位高手帮帮忙,我这先谢过了
折磨我一个多月了