在银行业务中,我们要对数据进行加密处理,这点事显而易见的,但无论是我们进行软件加密还是硬件加密,都需要对待加密的数据之前需要对数据进行打包处理。在解密数据后,无论是硬件加密还是软件加密都还需要进行相应的解包处理。这样才能得到我们想要的正确数据,在接下来的文章内将主要介绍打解包的处理和程序示例。
这其实就是一个将字符串数据转换成16进制数的问题,首先是打包(PACK),将如字符串"1234567FE" 转换成十六进制数0x12 0x34 0x56 0xE0等,因为字符串的长度是9程序会自动成偶数。尤其是在硬件加密方面,密码键盘是无法识别字符串的。在此过程中数据的长度会变为原来的一半,这是因为他会将原来的两位字符组成一个新的十六进制数,在字符串不足偶数时会在后面自动补0,由此转换为的数据就可以用来异或,活着Des,3Des操作。
以下是函数的实现过程
int Pack( unsigned char *pbyInBuffer, unsigned char *pbyOutBuffer, int iInBuffLen )
{
unsigned char n;
int iLen,i;
/*
** whether InBuffer data's len can be divided by 2
*/
if(iInBuffLen%2)
iLen=iInBuffLen+1;
else