首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要关于如何创建一个加密数据库的网站的建议

问我需要关于如何创建一个加密数据库的网站的建议
EN

Stack Overflow用户
提问于 2011-01-04 01:55:47
回答 5查看 231关注 0票数 0

我想创建一个网站,在那里用户输入内容(说几句话),这些内容最终会存储在后端数据库(可能是MySQL)中。但在内容离开客户端之前,我希望在客户端使用javascript之类的东西对其进行加密。

数据将通过加密的网络传输,但更重要的是,还将永久存储在加密的后端数据库中。

JavaScript适合用于此目的吗?256位加密会花费太长时间吗?

另外,如果您想要拉下用户在过去两个月内提交的内容,您如何查询加密的数据库?

我正在寻找关于如何学习和实现这一点的提示,建议和任何你们可能有的指针。

谢谢!

EN

回答 5

Stack Overflow用户

发布于 2011-01-04 15:21:42

您不应该自己为客户端和服务器之间的通信实现加密,而是使用SSL (https)。至于加密数据库中的数据,您始终可以使用MySQL的内置方法,如AES_ENCRYPT和AES_DECRYPT,详情请参阅reference manual。

票数 1
EN

Stack Overflow用户

发布于 2011-01-04 03:56:25

好吧,需要指出的是:如果它是客户端加密的,那么它很可能也很容易被解密,就像javascript这样的语言一样,它们被交给了你的加密方案的源代码。有很多加密方案,AES,Blowfish等,但如果数据在加密的连接上传输,我认为数据的加密只会增加很少的安全性,可能是本地安装的数据包嗅探器或其他类似的东西。

我还建议你也考虑使用压缩,我自己也使用过LZMA,Huffman,甚至base64编码和javascript,以至少使不知名的观察者看不到内容。重点是,无论加密有多好,你都可以把这个过程交给客户,他们就可以查看你的源代码,并且能够轻松地逆转加密,因为他们知道加密方案,并且不会懒得在维基百科上搜索或搜索。我个人更喜欢压缩,因为它还可以减少正在发送的数据的大小,而且除非一个人经过加密和压缩分析的培训,否则从嗅探数据包中找出正在使用的压缩并不容易。

编辑:但如果您想要高级别的安全性,我建议不要只使用压缩,而是对在服务器和客户端之间传输的数据使用非对称加密方法,如RSA或Diffie-Hellman加密,因为私钥永远不会被共享。

对于客户端,javascript或更好的Java应用程序可以工作(至少你不能在两秒钟内用Java应用程序右键单击->查看源代码)。如果你只是想像你说的那样节省几句话,256位加密不会花太长时间。一个现代的处理器,只需几毫秒就能处理完。然后,当数据到达服务器时,在将其发送到数据库之前,使用AES或其他强大的算法对其进行加密(请注意,美国政府对其最高机密文档使用AES 256 )。(还要补充的是,您还可以在单独的数据库中存储数据的散列(MD5是一个在PHP中随时可用的函数,您也可以选择Whirlpool之类的函数,但您必须为此找到一个库),并在访问它时进行检查,以确保您的数据库没有受到损害)。

对于查询,我建议使用PHP。读取数据,将其解密,然后发送给客户端(仍以加密的形式),或者如果您愿意,如果您不信任发送数据所经过的网络,则让客户端也对其进行解密。

这里有一个关于Javascript和AES的很好的源码:在javascript中使用RSA http://point-at-infinity.org/jsaes/我保存的两个链接:http://www.ohdave.com/rsa/和http://www.hanewin.net/encrypt/rsa/rsa.htm

票数 0
EN

Stack Overflow用户

发布于 2011-01-04 03:56:28

看看http://www.farfarfar.com/scripts/encrypt/ (加密/解密)。

已成功尝试text/text/XXTEA。

但是,JS加密只能做到这一点。

只要你不使用SSL/https,主要的缺点是:

  • 保护私钥的模糊功能(可以像表单字段一样不提交,但需要用户在每个会话中输入值)。

关于在加密数据上搜索/提取数据,我认为没有什么是可行的。

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

https://stackoverflow.com/questions/4587743

复制
相关文章

相似问题

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