Использование алгоритма шифрования Openssl Blowfish в C ++ - PullRequest
0 голосов
/ 08 августа 2011

Я пишу код для шифрования паролей и сопоставления с зашифрованным паролем, чтобы проверить, являются ли они слабыми. Я написал код шифрования с использованием API режима ECB, и он не работает должным образом. Есть несколько вопросов, на которые я отвечаю при отладке своего кода. Единственная опция, которую я вижу, я могу использовать, это BF_ecb_encrypt.

1) Режим ECB работает на 8 байтах за раз. Что если мой пароль содержит менее 8 символов? он должен быть дополнен случайно сгенерированным символом? или с ноль? Будет ли это работать так? или любым другим возможным способом

2) Фрагмент:

BF_set_key(bfKey, strlen(achSalt), achSalt);
String strBuf;
while (len >= 8)
{
  BF_ecb_encrypt(inStr,buf, bfKey, BF_ENCRYPT);
  len -= 8;
  inStr += 8;
  strBuf += String(reinterpret_cast<const char*>(buf));
  buf +=8;
}

Есть ли ошибка в коде?

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 08 августа 2011

Где вы говорите:

1) Режим ECB работает на 8 байтах за раз.Что если мой пароль содержит менее 8 символов?

, почему бы просто не установить минимальную длину 8 символов по соображениям "безопасности".люди часто имеют пароль длиной более 8 символов, потому что, если он длиннее и сложнее, то при шифровании его сложнее взломать.

...