【发布时间】:2012-12-12 01:33:57
【问题描述】:
这是一个带有登录屏幕的现有系统,现在我将一些服务公开为 REST 服务。我为此 Rest(jersey) 服务构建了一个身份验证令牌登录系统。用户发送用户名-密码,然后服务器返回一个计算为的令牌;
sha1(username+password+currenttime(or any random number))
用户将使用此令牌登录应用程序以获取更多请求。服务器在数据库中保存一份带有时间戳和用户 ID 的令牌副本,如果时间戳有效,则登录该用户。
考虑到会用到HTTPS,几个问题;
在我的设计中看起来一切正常吗? (哈希的生成和我保存在数据库中的方式)在我看来,最薄弱的一点是我需要通过 POST 请求发送普通的用户名和密码,但由于它是 HTTPS,我想这不会是一个问题。
另一件事,对于第一个请求,因为它是一个现有系统,所以我的数据库中没有用户密码,但保留了它们的加盐哈希版本。我想给所有客户这个加盐算法来向我发送他们的密码哈希是不安全的,所以我比较哈希而不是密码。这有意义吗=
【问题讨论】:
-
无需使用 SHA1、用户名和密码计算令牌。随机选择的数字也同样安全。
标签: java rest authentication token