我们有一个典型的基于Web的登录系统。我们希望客户能够生成永不过期的“登录链接”并包含其密码。 因此,我们希望创建一个包含加密形式密码的链接。 注意:我知道最好的方法是查找表,其中每个链接都有一个唯一的密钥......我不会讨论为什么这对我们不起作用;它不会。
我不熟悉公钥加密。也许这就是我需要的东西?
这就是我的想法。这仍然可能还不够,所以请让我知道:
定义:user-password是指链接中加密形式的用户密码。
我们不能对所有用户密码使用一个加密密钥,因为可以通过生成大量链接来导出加密密钥,所以......
使用标准形式的对称加密。
服务器有一个包含1000个复杂加密密钥的文本文件。
当生成链接时(使用具有该列表的PHP脚本),选择1000个加密密钥中的一个加密其明文密码(按顺序选择,不是随机选择以防止选择相同的密码)接近同一时间)。
在加密用户密码之前,先在“s345lm34l5k342342343534432324sdfs”之类的内容中添加“salt”。 (例如:password1变为s345lm34l5k342342343534432324sdfspassword1)。 “Salting”使得解密字典攻击变得更加困难。这种盐是保密的。但是,当然,它存在风险,它可以被泄露,并且它是所有密码的一个盐,所以......
此外,密码中还添加了第二个随机生成的盐。此盐使用单个强密码加密。因为盐和密码加密它是一个随机的字节模式,所以它更难确定盐。
链接制作工具只允许您每10分钟生成15个链接,然后锁定IP。
这安全吗?
答案 0 :(得分:5)
不,因为加密的密码已成为密码。你试过SSL吗? SSL应解决您的问题,您只需在HTTP级别使用普通URL。