【问题标题】:Need to encrypt the data but not with SHA1 or other digest需要加密数据但不使用 SHA1 或其他摘要
【发布时间】:2012-06-28 16:47:49
【问题描述】:

所以我正在做一个项目,我需要加密用户将在网站上输入的数据......我不想使用 SHA1 或任何其他加密方法,因为它们是单向加密,我需要在服务器端操作数据(我不存储用户数据)。任何人都可以建议我一些可以实现这一目标的好方法吗???

公钥加密会起作用吗?如果是,我应该使用哪一个?或者我应该设计一个新的算法?

我正在研究 Java。

如果有人可以向我指出一些资源以获得他们的答案或给我全新的很棒的想法,那将是非常棒的......:D

\m/ \m/

有谁知道常用的散列算法有多少种不同类型...???

【问题讨论】:

  • 您的意思是您不想使用 散列 算法。您确实想使用“任何其他加密方法” - 但您应该绝对不尝试设计自己的加密算法。有很多标准的可用,您应该做一些研究以找出每种标准的优缺点。设计一个好的加密算法是安全专业人员的工作。如果你自己做,你得到劣等的结果。
  • 我可以使用散列算法……但它会增加 JS 和服务器端的大量工作……
  • @HiteshPatwari,如果您尝试在客户端 js 中进行加密,则没有可以解决该问题的用户数据加密方案!这就是 SSL 是您的朋友的原因!
  • 如果您需要解密数据,那么您不能使用散列算法。您需要使用双向加密算法。

标签: java security public-key-encryption encryption-asymmetric


【解决方案1】:

您确定不想通过 https 传输数据吗?这将保护传输中的数据(通过众所周知的公钥加密),然后您不必在客户端代码中尝试运行额外的加密方案。这里的用例是什么?

【讨论】:

  • 同意,如果您只是想加密 Web 服务器和客户端之间的流量,那么 SSL 绝对是要走的路。它将保护双向流量,并且是适用于所有现代浏览器的标准。此外,一旦在 Web 服务器上进行了配置,您就不必担心每页的加密。它会自动发生。
  • 是的,流量会通过 HTTPS...但是让用户觉得我们在 URL 中以明文形式发送数据并不是一个好方法...
  • 如果您担心保护用户输入数据,无论如何都不要将其放在 URL 中。听起来这里的正确解决方案是使用 HTTPS POST。我当然理解用户可能对安全问题一无所知并提出不合逻辑的要求,但你最好告诉他们他们的数据是按照行业标准保护的,而不是你自己推出一些加密方案。这几乎肯定会最终损害安全性,而不是改善它。
【解决方案2】:

您应该前往http://www.bouncycastle.org/。你会找到你需要的所有信息,以及一些关于散列/加密/签名的背景,因为你似乎对这些术语有点困惑。 (无意冒犯)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    相关资源
    最近更新 更多