表tblid int --标识列、PKloginName nvarchar(16) --登录名pwd nvarchar(20) --密码birth datetime --生日age smallint --年龄phone nchar(11) --手机--剩下的为非保密项,不列出来。现在设置了如下两种角色:公司高管、普通员工。因为涉及个人隐私,要求不可以直接或间接的查看到其他人的保密信息。直接的就是在网页上看到,这个技术人员可以限制,间接的就是不可以让技术人员通过解密的方式获取真实的信息,当然本人在后台管理里是可以看到自己的的保密和非保密信息,公司高管可以查看所有人的保密和非保密信息。
说明:技术人员用测试数据开发完后,使用该系统的身份仍是普通员工。最初的想法是通过DES加密后,存到数据库里,然后后台显示的时候,解密显示出来。
这个方式有2个问题:1.技术人员可以解密知道。2.不方便查询,pwd不要紧,但是birth,age,phone不好模糊查询。例如:公司高管要统计每月过生日的员工、统计各年龄段的员工、统计139号码的员工等。不知各位达人们有什么更好的建议吗?

解决方案 »

  1.   

    1.技术人员可以解密知道。
      用MD5加密2.不方便查询,pwd不要紧,但是birth,age,phone不好模糊查询。例如:公司高管要统计每月过生日的员工、统计各年龄段的员工、统计139号码的员工等。 将模糊查询的条件进行加密后再写入sql语句的 like 后进行模糊查询
      

  2.   


    age >= 30 and age < 40 如何查?
    where month(birth) = 4 查4月份的生日的员工,如何查?
      

  3.   


    说的很好,但是小公司的DBA和编码人员都是同一个怎么办?
      

  4.   

    lz做娱乐圈的信息管理啊.对年龄都要保密??的确啊.加密之后再模糊查询就会比较郁闷了
    看起来安全性要求又挺高的.不然我会考虑直接转换撑ASCII嘛或者直接urldecode还是urlencode.