在c++中使用Openssl河豚加密算法

Using Openssl blowfish encryption algorithm in C++

本文关键字:Openssl 河豚 加密算法 c++      更新时间:2023-10-16

我正在编写代码来加密密码并匹配加密密码以检查密码是否弱。我已经使用ECB模式API编写了加密代码,它不像预期的那样工作。在调试代码时,我遇到了一些问题。我看到唯一可以使用的选项是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;
}

代码中有bug吗?

提前感谢您的帮助

你说:

1) ECB模式每次工作8字节。如果我的密码少了怎么办比8个字符?

出于"安全"原因,为什么不将最小长度设置为8个字符呢?人们通常使用超过8个字符的密码,因为如果密码更长更复杂,加密后更难破解。