- 论坛徽章:
- 0
|
int main(int argc, char **argv)
{
unsigned int i;
DES_key_schedule ks;
const_DES_cblock key;
unsigned char plain_0[100];
unsigned char plain_1[100];
unsigned char cipher[100];
unsigned char cipher2[100];
DES_cblock ivec;
char src[100];
int len = 0;
int k = 0;
memset(&ks, 0, sizeof(ks));
memset(&key, 0, sizeof(key));
memset(plain_0, 0, sizeof(plain_0));
memset(plain_1, 0, sizeof(plain_1));
memset(cipher, 0, sizeof(cipher));
memset(cipher2, 0, sizeof(cipher2));
memset(&ivec, 0, sizeof(ivec));
/*DES-CBC 加解密测试*/
strcpy(src, argv[1]);
memcpy((char *)key, "1q@W3e$5", ;
memcpy((char *)ivec, "1q@W3e$5", ;
len = strlen(src);
printf("len[%d]\n", len);
DES_set_key_unchecked( &key, &ks );
/*不用每8字节加解密*/
memset(cipher, 0, sizeof(cipher));
DES_ncbc_encrypt((unsigned char *)src, cipher, len, &ks, &ivec, DES_ENCRYPT );
printf( "cipher : " );
for ( i = 0; i < 16; i++ )
{
printf( "%02X%c", cipher, ' ' );
}
//printf("\ncipher :[%s], strlen(cipher)[%d]\n", cipher, strlen((char *)cipher));
memset(plain_1, 0, sizeof(plain_1));
DES_ncbc_encrypt(cipher, plain_1, 16, &ks, &ivec, DES_DECRYPT );
printf("\nplain_1 :[%s]\n", plain_1);
}
对明文12345678asdfg进行加密,但是解密后前8字节为乱码,解密的结果为:齉r夳?)asdfg
急!急!急! |
|