Итак, вот моя программа на C, я не могу понять, почему я не могу расшифровать зашифрованную строку. Я хотел написать небольшую программу на C, которая берет строку, шифрует, затем берет зашифрованную строку и с предоставленным ключом, расшифровывает. Два вопроса: A) Что я здесь делаю неправильно? B) Как хранится ключ, то есть, если я сейчас работаю над новым шифрованием, и пользователь хочет расшифровать предыдущий текст, когда он поставляет пароль, будет ли он взорваться, а затем узнать, как его расшифровать?Шифрование и дешифрование Blowfish в C
Вот документация Blowfish: http://www.openssl.org/docs/crypto/blowfish.html и теперь моя программа:
#include <string.h>
#include "blowfish.h"
#include "bf_pi.h"
#include "bf_locl.h"
#include <stdio.h>
#include <stdlib.h>
int main()
{
char from[128], to[128];
int len = 128;
BF_KEY key;
char temp_buf[16];
int n = 0; /* internal blowfish variables */
unsigned char iv[8]; /* Initialization Vector */
/* fill the IV with zeros (or any other fixed data) */
memset(iv, 0, 8);
printf("input password: ");
scanf("%s", &temp_buf);
strcpy(from, "ABCDEFGHTHISISTHEDATA"); //ENCRYPT THIS
BF_set_key(&key, 16, temp_buf);
BF_cfb64_encrypt(from, to, len, &key, iv, &n, BF_ENCRYPT);
printf("encrypted to --> %s\n", to); //SUCCESSFULY ENCRYPTED
BF_cfb64_encrypt(from, to, len, &key, iv, &n, BF_DECRYPT);
printf("File %s has been decrypted to --> %s \n",from, to); //FAILS DOES NOT DECRYPT
}
Я уже пробовал, что НЕ работал. – user2740412
Можете ли вы опубликовать результаты? –
пароль ввода: привет зашифровано до -> Z ??? /? W? N \t Z> j4 ?? LANG –
user2740412