如何在数据库中以加密形式保存字符串(用户名密码),并在用户登录时解密

Arj*_*jun 2 c++ authentication

大家早上好,
我正在使用c ++并且还使用wxWidget,在后端我使用MySql,我想在数据库中以加密形式保存用户名和密码,
当用户尝试登录时,我将解密数据进行身份验证,
是c ++中有任何可以处理加密或解密的头文件吗?

OJ.*_*OJ. 11

不加密密码,您不希望人们的密码可以恢复.如果他们忘记了密码,请将密码重置为其他密码.不要存储可用于获取原始密码的密码或加密密码.

你应该做的是:

  • 生成随机.
  • 将salt值附加或添加到用户密码中.
  • 散列密码和盐的组合(使用强大的东西,如SHA256).
  • 将用户名,散列值和salt存储在数据库中.

当用户尝试登录时:

  • 加载与用户名关联的salt值.
  • 将salt添加或提供(即,与注册时相同)所提供的密码.
  • 散列组合,将其与存储的散列进行比较.如果它们不同,则登录失败.