H B*_*amy 6 mysql database security encryption password-encryption
我将Paswords和个人数据存储在数据库中.加密这些保护值的最强方法是什么.
此外,在数据库中加密信用卡信息的最佳方法是什么?或者我应该使用其他东西来存储信用卡信息,而不是mysql数据库?
谢谢.
Cri*_*low 11
我认为在SQL中存储任何东西都很好,只需先加密它.如果需要以某种方式识别数据(例如使用DB条目的唯一键),请创建随机生成的字符串或安全哈希,并将其存储在加密数据的旁边.
最好坚持使用经过试验和测试的东西.由于它是一个数据库(可能用于计费系统),因此快速检索会很好.因此,请远离非对称加密 - 如果您需要与对象密钥共享,则应仅用于加密对称密钥.
一些特殊的强度(比如256位)的AES应该没问题.我很高兴知道我们以这种方式获得的个人信息.
在存储用户密码方面,通常的做法是生成一个盐(随机字符串),然后使用安全散列算法(RIPEMD,SHA1,MD5)散列与该盐结合的用户密码.
这可以防止预先计算的字典破解者恢复密码,因为它也需要处理所有随机盐.
不加密密码,只加密它们.没有必要能够以明文形式恢复密码,它只会通过这一个主密钥使您的系统容易受到攻击.不要使用用户可以选择的密钥加密用户数据,这会在密钥丢失时使数据无法恢复.提供用户在丢失密码时恢复帐户访问权限的常用方法.
如果你真的需要隐藏用户名,也许你应该问自己关于你正在使用的数据架构.一般而言,个人数据,尤其是账单数据不应存储在明显的视线中,只能由受信任方访问.这些受信任方需要查看用户名和信息的内容,因此可能不需要加密.
如果您要在开放的互联网上传输用户信息,请对其进行加密.
如果您担心数据库服务器上的用户信息的安全性,可以考虑使用云或数据托管提供商,他们可以为您的服务器提供一些额外的物理安全性.
加密只是强大安全策略的一部分.特别关注建立安全环境以进行商业活动的人为因素.根据需要了解敏感资源的访问权限.如果丢失所有密钥,请确保安排备份或某些数据恢复方法.