表user{
userid
password1
password2
}
需求:一个账号对应2种密码,如果以userid+password1登录 进入到A页面  
如果以userid +password2登录 进入到B页面。
存在表中的密码都是经过加密了。也就是说登录的时候必须获将登录的密码加密了去User表中对比查询
加密函数为
select encrypt('1234') from dual
解密函数为:
select dencrypt('AKSD12423523
') from dual假设用户输入zhangsan 密码123455登录,检查密码
   1) select encrypt('123455') from dual 获取到一个值A
   2) 将该值A和 User表中账号为zhangsan的行中的二个加密密码比较
   3) 可以得出跳转方向是A 还是B
不考虑action和Modele层
在Dao实现的时候
public user login(String username,String password){
..
sql =这里拼串不知道怎么写
...
}
----
可有会的

解决方案 »

  1.   


    if 
    (select 第二加密密码列名 from [User表] where 用户名= 'zhangsan')=
    (select encrypt('123455') from dual)
    select '相等'
    else
    select '不相等'
      

  2.   

    为什么不在应用层加密呢,而要借助SQL的加密。你把加密后的内容存在SQL里面就行了。.NET就有可以对这种password加密的功能。
      

  3.   

    public user login(String UserID,String password){ 
    ...
    strsql="select db.dbo.dencrypt(password1) as psw1,db.dbo.dencrypt(password2) as psw2 from user where userid='"&userID&"'"
    rst.open strsqlif rst.fields("psw1")=password then
      form1.show
    elseif rst.fields("psw2")=password then
      from2.show
    elseif rst.fields("psw1")=rst.fields("psw2")=password then
      ???.show
    end if
    ...