84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
编写好了JAVA WEB,想像桌面软件那样,第一次使用的时候需要输入一个key,验证通过则能使用整个系统,否则就无法访问任何页面。
key可以包含授权使用时长,比如1个月。
没有输入正确的key,则无论访问什么url路径,都会跳转到输入key的页面(和用户的登录页面一样)
请问这该怎么实现?
认证0级讲师
简单来说 两种
根据对方机器生成key。
就是你自己实现一种加密方式。(摘要算法之类的不需要反解的算法就行) 然后获取项目部署那台电脑几个主要硬件的mac地址,如主板网卡硬盘之类的,项目内用这些数据计算出一个值,和用户填入的key比较相同就启动正式项目,不同就提示请填入key。mac地址,如主板网卡硬盘之类的,项目内用这些数据计算出一个值,和用户填入的key比较相同就启动正式项目,不同就提示请填入key。 至于如何获取对方硬件信息,就随意了,比如直接让部署项目的同志给你发回来然后,你用那个算计算一个key 发回去。
mac地址
你自己生成一个key到处发放。
比如再建一个web服务,用这台机器生成一批UUID 至于如何获取对方硬件信息,就随意了,比如直接让部署项目的同志给你发回来然后,你用那个算计算一个key 发回去。
UUID
前提是你已经通过其他方式把这个key给了客户.key给了客户.
key
校验访问是否非法通过cookie判断是否已经登陆,如果验证比较严谨,你这种按授权来的也可以加些ip地址,mac地址之类的强校验,毕竟你客户群很可能不是普通大众.
cookie
ip
mac
授权使用时长,你说的是按一个月算的,也有可能有高级点的客户按半年算的,所以这个是生成时候决定的. 可以使用redis存储你的这个key,可以设置过期时间,每次访问从cookie取key(多数是要加密的),根据key可以去redis取授权剩余时间.
redis
对于校验key失败访问任何一个页面都要跳回输入key的页面.问题带了springmvc
springmvc
不知道你的key和用户是怎么绑定的。应当是以用户的唯一标识。可以把匹配的用户的唯一标识和key存入数据库或缓存里,以此来判断用户是否有权限。至于页面跳转搞个filter就够了。
可以登录成功后生成一个秘钥 存入cookie 并且设置cookie的时效,每次刷新网页是验证一下,这算是比较简便的方法了
没有其他外部证书的情况下,题主的需求与“使用用户名密码登录后记录登录状态一段时间”有什么区别?
谢谢各位的回复,不过不好意思只能采纳一个答案。
简单来说 两种
根据对方机器生成key。
就是你自己实现一种加密方式。(摘要算法之类的不需要反解的算法就行)
然后获取项目部署那台电脑几个主要硬件的
mac地址
,如主板网卡硬盘之类的,项目内用这些数据计算出一个值,和用户填入的key比较相同就启动正式项目,不同就提示请填入key。mac地址
,如主板网卡硬盘之类的,项目内用这些数据计算出一个值,和用户填入的key比较相同就启动正式项目,不同就提示请填入key。至于如何获取对方硬件信息,就随意了,比如直接让部署项目的同志给你发回来然后,你用那个算计算一个key 发回去。
你自己生成一个key到处发放。
比如再建一个web服务,用这台机器生成一批
UUID
至于如何获取对方硬件信息,就随意了,比如直接让部署项目的同志给你发回来然后,你用那个算计算一个key 发回去。UUID
发放出去,然后项目启动后,先请求一次这个服务器进行,服务器进行校验,判断key存不存在,用过没有,发来用过的key的机器和第一次激活是同一台机器么。(一样用不可逆的算法就行)#🎜🎜# 或者更简单,搞一种伪随机算法(可逆的算法),根据种子可以算出一批key,每个key都可以反解出这个种子。#🎜🎜# 项目启动时解密输入的key,判断是不是那个种子。#🎜🎜# #🎜🎜# #🎜🎜#前提是你已经通过其他方式把这个
key
给了客户.key
给了客户.校验访问是否非法通过
cookie
判断是否已经登陆,如果验证比较严谨,你这种按授权来的也可以加些ip
地址,mac
地址之类的强校验,毕竟你客户群很可能不是普通大众.授权使用时长,你说的是按一个月算的,也有可能有高级点的客户按半年算的,所以这个是生成时候决定的.
可以使用
redis
存储你的这个key
,可以设置过期时间,每次访问从cookie
取key
(多数是要加密的),根据key
可以去redis
取授权剩余时间.对于校验key失败访问任何一个页面都要跳回输入key的页面.问题带了
springmvc
cookie
判断是否已经登陆,如果验证比较严谨,你这种按授权来的也可以加些ip
地址,mac
地址之类的强校验,毕竟你客户群很可能不是普通大众.🎜🎜 🎜🎜授权使用时长,你说的是按一个月算的,也有可能有高级点的客户按半年算的,所以这个是生成时候决定的.可以使用
redis
存储你的这个key
,可以设置过期时间,每次访问从cookie
取key
(多数是要加密的),根据key
可以去redis
取授权剩余时间.🎜🎜 🎜🎜对于校验key失败访问任何一个页面都要跳回输入key的页面.问题带了springmvc
标签,那你应该知道请求都是被拦截然后处理完再跳转的,你应该是有思路的.🎜🎜 🎜不知道你的key和用户是怎么绑定的。应当是以用户的唯一标识。可以把匹配的用户的唯一标识和key存入数据库或缓存里,以此来判断用户是否有权限。至于页面跳转搞个filter就够了。
可以登录成功后生成一个秘钥 存入cookie 并且设置cookie的时效,每次刷新网页是验证一下,这算是比较简便的方法了
没有其他外部证书的情况下,题主的需求与“使用用户名密码登录后记录登录状态一段时间”有什么区别?
谢谢各位的回复,不过不好意思只能采纳一个答案。