0

パスワードを暗号化し、暗号化されたパスワードを照合してパスワードが弱いかどうかを確認するコードを書いています。ECBモードAPIを使用して暗号化コードを記述しましたが、期待どおりに機能していません。コードのデバッグ中に出くわす質問はいくつかあります。私が見る唯一のオプションは、BF_ecb_encryptです。

1)ecbモードは一度に8バイトで動作します。パスワードが8文字未満の場合はどうなりますか?ランダムに生成されたcharを埋める必要がありますか?またはゼロで?このように機能しますか?または他の可能な方法

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;
}

コードにバグはありますか?

よろしくお願いします。

4

1 に答える 1

0

あなたが言うところ:

1)ecbモードは一度に8バイトで動作します。パスワードが8文字未満の場合はどうなりますか?

「セキュリティ」の理由から、最小長を8文字に設定しないのはなぜですか。多くの場合、パスワードは8文字より長くなります。これは、パスワードが長く複雑な場合、暗号化すると解読が困難になるためです。

于 2011-08-08T10:41:48.477 に答える