在MySQL中存储敏感数据的最佳方法是什么?

emb*_*ded 12 php mysql security encryption cryptography

我正在从PHP脚本管理MySQL数据库.服务器和客户端之间的通信通过SSL保护.我存储敏感的用户帐户数据.

输入数据库时​​有没有办法加密这些数据?保护这些敏感数据的最佳方法是什么?

编辑:我正在使用CRON作业来更新依赖此密码登录用户帐户的数据.所以我需要一种方法来散列这个密码,并能够获得我的CRON工作任务的原始密码.

实现它的最佳方法是什么?

谢谢

roo*_*ook 15

说真的, 不要使用MySQL的aes_encrypt() 这是使用分组密码最不安全的方法.它正在使用ECB模式,我可以给出一个简单的示例演示为什么这是一个严重的错误.

纯文字信息:

替代文字

使用ECB模式加密的相同消息(与您使用的密码无关): 替代文字

使用CBC模式的完全相同的消息(再次,你使用什么密码并不重要): 替代文字

更多的理由不使用mysql的aes_encrypt,最值得注意的是,你发送的每个查询也都有你使用的aes密钥.如果数据库受到攻击,攻击者将启用日志记录,只需获取您的密钥并解密整个数据库.

那你应该怎么用?我暂时喜欢上课.它使用CBC模式,具有String2Key功能和IV.您可以使用主键作为IV,每条消息必须具有唯一的IV.如果攻击者知道IV,并且它们是顺序的,只要分组密码实现是安全的,那就没关系 . 重复使用IV使WEP更不安全.

  • "这个班级"链接已经死了! (7认同)
  • 即使我不知道发生了什么,照片也是+1. (2认同)