首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Mcrypt,它到底有多安全?

PHP Mcrypt,它到底有多安全?
EN

Stack Overflow用户
提问于 2012-06-15 21:44:20
回答 1查看 8.1K关注 0票数 7

目前,我正在做一个项目,它将处理一些相当敏感的个人信息,虽然它不是backaccount号码,但它仍然是敏感的个人信息,我想尽我所能加密和存储这些信息在mysql中尽可能安全。因此,现在我正在热切地寻找一些安全措施,可以处理这些敏感信息。

我发现加密/解密字符串和文本块的一种简单方法是使用mcrypt。但是当我在stackoverflow上搜索mcrypt时,我注意到很多人告诉我mcrypt毕竟不是那么安全。

所以现在我想知道,它到底有多安全?如果密钥被安全地存储,是否需要大量的黑客技能,比如说专家技能,来破解和解密存储的信息?我需要害怕一个没有什么技能的黑客可以解密我要存储在mysql服务器中的加密信息吗?那么,要破解使用mcrypt加密的加密信息需要哪些技能呢?

如果Mcrypt不够好用,有什么好的替代方案不像使用gnupg扩展那样复杂呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-15 23:29:36

一个小指南,你可以遵循,以避免一些陷阱,并应用一些建议。

  • 不会对两个不同的消息重用相同的加密密钥和初始化向量(IV)。

如果对手在传输过程中使用相同的密钥和IV截获两个或更多消息,

这样做将有暴露纯文本的风险。

  • 不要使用ECB模式;OFB和CTR模式稍好一些,但建议使用CBC或CFB模式。

不使用ECB的主要原因是因为这种模式会泄漏有关重复纯文本块的信息,这可能会破坏您的编码数据流。

OFB和CTR更好,但它们存在上述安全问题,即多次使用相同的IV+key组合。

CFB和CBC对IV+key重用的恢复能力最强,但具有相同公共前缀的单独消息将泄漏所述前缀的长度。此外,CFB还会泄漏出第一个不相同的纯文本块的差异。

  • 确保您拥有强大的加密密钥

它不应该从可打印的ASCII码中选择(例如,不是“我的超强密钥”);PBKDF2将是首选(很快就会被本地支持,直到谷歌它)。显然,此密钥必须妥善保管;如果丢失,请与数据再见。

  • 使用良好的熵源来生成初始化向量。

在调用mcrypt_create_iv().时,Mcrypt可以选择使用MCRYPT_DEV_RANDOM或MCRYPT_DEV_URANDOM

希望本文能对您有所帮助:)

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11051845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档