微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP加密的新手,请问方向?

我正在处理一个很小的表格,它可以接受信用卡号,此后不久便会清除.对于它们存在于数据库中的时间,我希望它们以舒适的加密状态存在.不幸的是,在我多年的Web开发,编程和数据库开发工作中,我一次没有机会进行有关加密领域的自我教育.

有没有我可以快速实施的相对容易实现的加密信用卡号的方法?一组函数,类,所有可以完成工作并且做得很好的东西?我借此机会对这个问题进行自我教育,但是由于时间敏感性,我们不仅仅要求向正确的方向发展.

语言:PHP /存储:MysqL

解决方法:

最好的方法之一是简单地使用MysqL进行加密/解密.请参阅以下功能

http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html

但是,请记住,尽管这样做可以保护您免受可能找到一种读取数据库方法的人的侵害,但不能保护拥有服务器的人.这是因为解密密钥存在于服务器上.

总而言之,这是巨大的推动力.真正的安全性将来自使用安全私钥(例如,其他服务器)进行的公钥加密和脱机解密.

举个例子:

INSERT INTO BillingInfo 
SET CCard = AES_ENCRYPT('4111...', 'super-secret-key')
...

SELECT 
AES_DECRYPT(CCard, 'super-secret-key') 
...

具体功能记录在这里
http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html#function_aes-encrypt

有关AES的更多信息,请参见:
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

为了在您的环境中获得最大的安全性,建议您将密钥存储在PHP常量中.这样不太可能在运行时泄露(较小的细节).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐