我说说我在做web方面的用户认证时常用的方法:
1.有关用户登录的页面全部通过https来访问。
2.用户信息放在数据库或者目录服务都可以,但是密码不要存明文。加密算法最好不可逆(我们是采用Hash算法,虽然有可能出现两个密码的Hash值相同,不过这个概率非常非常小)
3.如果不采用不可逆的加密算法,至少也要采用例如DES或者3DES对密码进行加密,要保证一定的加密强度,不要使用移位等简单的加密算法。
1.有关用户登录的页面全部通过https来访问。
2.用户信息放在数据库或者目录服务都可以,但是密码不要存明文。加密算法最好不可逆(我们是采用Hash算法,虽然有可能出现两个密码的Hash值相同,不过这个概率非常非常小)
3.如果不采用不可逆的加密算法,至少也要采用例如DES或者3DES对密码进行加密,要保证一定的加密强度,不要使用移位等简单的加密算法。
jokerjava(冷血) 可以在说点给我听听吗?谢谢!
也就是你的数据从我的计算机节点通过 对于一般的计算机用户来说
这个恐怕不是很容易这里是tomcat的ssl + http的配置
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/ssl-howto.html
将“流氓无赖”测试到底
——始于2003年7月
树欲止而风不停,行云流水匆匆去;
树梢蚂蚱凭空望,江边浪花碎巨石; 支持“流金岁月”!!!
发送框,少个“右键菜单,选择粘贴”;
——2003年12月24日am^@^
的范围内!
用户密码加密 ---> MD5
做一个通用的模块把上面这四种实体维护起来到数据库中。 (这个一点也不难)
定义好这个模块对外的接口。以提供外部调用。 在你的权限模块加一个单独的类,提供一个静态的验证的方法。比如 boolean hasResource(String userId, String resourceId);提供一个用户,和一个要验证的资源。 如果该用户有权限返回true,否则返回false,以便在其它模块里使用这个方法来判断用户是否有权限。至于你是不是要一次把该用户所有权限都取出来,然后相应的显示菜单了什么的。 看你的需要,加一个取指定用户全部resource方法可能较好。
这种实现的好处是设计相对简单,并在权限设置上有很大的灵活性,而且有一定的重用价值。(我们已经用在不同的项目中了)。
整个权限模块只有一个方法和其实模块有偶合,就是那个验证是否有权限的方法
boolean hasResource(String userId, String resourceId);坏处是这种实现对数据库来说也要复用。 因为这个权限模块所对应的表结构已经定下来了。所以如果想在其它项目中用这个模块,其相应的表也得放入这个项目中(不过这几个表非常独立,不会影响太大)。