时间:2010-07-26 18:03:45

标签: mysql perl security

4 个答案:

答案 0 :(得分:1)

其他人指出加密将导致经济放缓。多少取决于许多不同因素,因此您需要对代码进行基准测试。

但实际上,保护最重要的可能是密码,因为如果受到损害,那么用户在其他服务上的帐户也可能会受到影响,因为人们倾向于重复使用相同的用户名/电子邮件/密码组合。

幸运的是,密码很容易安全。使用像SHA1这样的单向散列和盐(以防止雨箱表),并且永远不会将实际密码存储在数据库中。存储salted-hash。然后,当用户登录时,你可以检查他们给你的pw,以确保它匹配,而不必存储他们的pw真正是什么。

答案 1 :(得分:1)

您应该尽量避免加密数据库中的所有内容。至少你必须弄清楚哪些字段用于搜索,关系,排序等,并保留未加密的字段。您必须根据隐藏数据的人来考虑加密层。如果您清楚单向散列(MD5,SHA),对称加密和非对称加密之间的差异,它也会有所帮助。

加密数据库中的密码是有意义的,因为它隐藏了dba或任何能够直接查询db的人的密码。实际上,密码没有加密,它们是经过哈希处理的。这样你永远无法恢复密码,你只能生成一个新密码。

需要恢复的数据将被加密,以便可以解密。有各种算法可以做到这一点,它们具有不同的强度和成本属性(在处理时间和内存方面)。你应该选择一个适合你的目的。

这里的问题是加密和解密需要在应用程序中完成,而不是在数据库中完成。这样做的原因是,在某些时候,数据库和应用程序服务器之间可能存在开放的网络,并且可能会嗅探应用程序和数据库之间传输的任何数据。

在决定对称和非对称加密时,有两个因素。一个是这个信息需要保持多长时间才能保证安全。如果是拍卖的出价将在2天内结束,您可以使用对称加密,因为如果人们在此之后弄清楚事情,那么理想情况下无关紧要。信用卡号码通常不必保持安全。如果您要存储卡的有效期和ccv号,那么这些必须保持安全,通常是多年。在这种情况下,您必须使用非对称加密。

在加密整个文件系统时,主要不是你担心的性能下降。据我所知,它需要一个人在操作系统启动时输入正确的密码,并且需要物理访问,并且可以信任的人知道密码与SLA所需的密码保持一致。在这里,它就像设置BIOS密码或grub密码。如果您确实加密了文件系统,请务必对此进行验证或找到解决方法。

答案 2 :(得分:0)

答案 3 :(得分:0)