在URL中包含加密密码?可能?

时间:2012-06-14 06:22:03

标签: encryption encryption-symmetric

我们有一个典型的基于Web的登录系统。我们希望客户能够生成永不过期的“登录链接”并包含其密码。 因此,我们希望创建一个包含加密形式密码的链接。 注意:我知道最好的方法是查找表,其中每个链接都有一个唯一的密钥......我不会讨论为什么这对我们不起作用;它不会。

我不熟悉公钥加密。也许这就是我需要的东西?

这就是我的想法。这仍然可能还不够,所以请让我知道:

定义:user-password是指链接中加密形式的用户密码。

我们不能对所有用户密码使用一个加密密钥,因为可以通过生成大量链接来导出加密密钥,所以......

  • 使用标准形式的对称加密。

  • 服务器有一个包含1000个复杂加密密钥的文本文件。

  • 当生成链接时(使用具有该列表的PHP脚本),选择1000个加密密钥中的一个加密其明文密码(按顺序选择,不是随机选择以防止选择相同的密码)接近同一时间)。

  • 在加密用户密码之前,先在“s345lm34l5k342342343534432324sdfs”之类的内容中添加“salt”。 (例如:password1变为s345lm34l5k342342343534432324sdfspassword1)。 “Salting”使得解密字典攻击变得更加困难。这种盐是保密的。但是,当然,它存在风险,它可以被泄露,并且它是所有密码的一个盐,所以......

  • 此外,密码中还添加了第二个随机生成的盐。此盐使用单个强密码加密。因为盐和密码加密它是一个随机的字节模式,所以它更难确定盐。

  • 链接制作工具只允许您每10分钟生成15个链接,然后锁定IP。

  • 链接制作工具不会生成链接,除非提供给它的用户/密码实际上是一个正常运行的用户/密码组合。这样,如果某人只是尝试生成链接以确定加密信息,那么它将无法正常工作。理论上,他们仍然可以获得有效的用户/密码并尝试暴力破解。

这安全吗?

1 个答案:

答案 0 :(得分:5)

不,因为加密的密码已成为密码。你试过SSL吗? SSL应解决您的问题,您只需在HTTP级别使用普通URL。