gpt4 book ai didi

我们可以在不知道明文大小的情况下使用 C 中的 OpenSSL 解密(对称加密/解密)消息吗?

转载 作者:太空宇宙 更新时间:2023-11-04 00:06:02 26 4
gpt4 key购买 nike

我正在使用以下代码在使用 openssl 的 Windows 中使用 C 加密和解密二进制数据。如您所见,在这两个函数中,我都知道纯文本的大小。有什么方法可以在不知道纯文本大小的情况下解密消息?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/des.h>
char * Encrypt(char *Key, char *Msg, int size)
{
static char* Res;
int n = 0;
DES_cblock Key2;
DES_key_schedule schedule;
Res = (char *)malloc(size);
/* Prepare the key for use with DES_cfb64_encrypt */
memcpy(Key2, Key, 8);
DES_set_odd_parity(&Key2);
DES_set_key_checked(&Key2, &schedule);
/* Encryption occurs here */
DES_cfb64_encrypt((unsigned char *)Msg, (unsigned char *)Res,size, &schedule, &Key2, &n, DES_ENCRYPT);
return (Res);
}
char * Decrypt(char *Key, char *Msg, int size)
{
static char* Res;
int n = 0;
DES_cblock Key2;
DES_key_schedule schedule;
Res = (char *)malloc(size);
/* Prepare the key for use with DES_cfb64_encrypt */
memcpy(Key2, Key, 8);
DES_set_odd_parity(&Key2);
DES_set_key_checked(&Key2, &schedule);
/* Decryption occurs here */
DES_cfb64_encrypt((unsigned char *)Msg, (unsigned char *)Res,size, &schedule, &Key2, &n, DES_DECRYPT);
return (Res);
}
int _tmain(int argc, _TCHAR* argv[])
{
char key[] = "password";
char clear[] = "This is a secret message";
char *decrypted;
char *encrypted;
encrypted = (char *)malloc(sizeof(clear));
decrypted = (char *)malloc(sizeof(clear));
printf("Clear text\t : %s : sizeof: %i\n", clear, strlen (clear));
memcpy(encrypted, Encrypt(key, clear, sizeof(clear)), sizeof(clear));
printf("Encrypted text\t : %s sizeof: %i\n", encrypted, strlen(encrypted));
memcpy(decrypted, Decrypt(key, encrypted, sizeof(clear)), sizeof(clear));
printf("Decrypted text\t : %s sizeof: %i\n", decrypted, strlen(decrypted));
return 0;
}

最佳答案

只有密码反馈?当然,只要您知道 block 边界在哪里,您就是黄金(即您需要知道您在密文中的位置)。

关于我们可以在不知道明文大小的情况下使用 C 中的 OpenSSL 解密(对称加密/解密)消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23900563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com