目前,我正在做一个项目,它将处理一些相当敏感的个人信息,虽然它不是backaccount号码,但它仍然是敏感的个人信息,我想尽我所能加密和存储这些信息在mysql中尽可能安全。因此,现在我正在热切地寻找一些安全措施,可以处理这些敏感信息。
我发现加密/解密字符串和文本块的一种简单方法是使用mcrypt。但是当我在stackoverflow上搜索mcrypt时,我注意到很多人告诉我mcrypt毕竟不是那么安全。
所以现在我想知道,它到底有多安全?如果密钥被安全地存储,是否需要大量的黑客技能,比如说专家技能,来破解和解密存储的信息?我需要害怕一个没有什么技能的黑客可以解密我要存储在mysql服务器中的加密信息吗?那么,要破解使用mcrypt加密的加密信息需要哪些技能呢?
如果Mcrypt不够好用,有什么好的替代方案不像使用gnupg扩展那样复杂呢?
发布于 2012-06-15 23:29:36
一个小指南,你可以遵循,以避免一些陷阱,并应用一些建议。
如果对手在传输过程中使用相同的密钥和IV截获两个或更多消息,
这样做将有暴露纯文本的风险。
不使用ECB的主要原因是因为这种模式会泄漏有关重复纯文本块的信息,这可能会破坏您的编码数据流。
OFB和CTR更好,但它们存在上述安全问题,即多次使用相同的IV+key组合。
CFB和CBC对IV+key重用的恢复能力最强,但具有相同公共前缀的单独消息将泄漏所述前缀的长度。此外,CFB还会泄漏出第一个不相同的纯文本块的差异。
它不应该从可打印的ASCII码中选择(例如,不是“我的超强密钥”);PBKDF2将是首选(很快就会被本地支持,直到谷歌它)。显然,此密钥必须妥善保管;如果丢失,请与数据再见。
在调用mcrypt_create_iv().时,Mcrypt可以选择使用MCRYPT_DEV_RANDOM或MCRYPT_DEV_URANDOM
希望本文能对您有所帮助:)
https://stackoverflow.com/questions/11051845
复制相似问题