【发布时间】:2013-12-18 13:53:53
【问题描述】:
我有一个主进程和一个子进程。我使用 openssl 库在 main 中创建了一个带有密钥的加密字符串。我还创建了一个具有相同密钥的加密字符串。两个输入值相同,但结果不同。
这是我的主要过程加密:
unsigned char *encryptedString;
unsigned char key[8] = {4,1,8,9,1,61,64,220};
unsigned char * enc_out = malloc(80*sizeof(char));
AES_KEY enc_key;
AES_set_encrypt_key(key, 128, &enc_key);
AES_encrypt(originalString, enc_out, &enc_key);
encryptedString = malloc(80*sizeof(char));
strcpy(encryptedString, enc_out);
free(enc_out);
这是我孩子的解密过程
//gets encryptedString as parameter argv[2] from main and it is ok
//gets originalString as argv[1] from main and it is ok
//minkeyspace and maxkeyspace calculated and they are ok
unsigned char *encryptedString;
AES_KEY dec_key;
unsigned char key[8] = {4,1,8,9,1,61,64, 0};
unsigned char * dec_out = malloc(80*sizeof(char));
for(j = minkeyspace; j < maxkeyspace ; j++){
key[7] = j;
AES_set_decrypt_key(key,128,&dec_key);
AES_decrypt(encryptedString, dec_out, &dec_key);
if(strcmp(originalString, dec_out) == 0){ //They are not equal. There is a problem
puts("FOUND");
}
}
请帮帮我。
【问题讨论】:
标签: c encryption cryptography aes parent-child