我这样的思路可以吗?业务数据用.net自带的哈希值来加密后保存在数据库中,这样会不会影响到操作性能呢?对于重要的业务数据,这样做是否安全?

解决方案 »

  1.   

    业务数据用.net自带的哈希值来加密后保存在数据库中
    ----------
    哈希算法是不可逆算法,绝对不可行...这样会不会影响到操作性能呢?
    ----------
    绝对会影响,客户端不用说,服务器的负担会成几何级数增长...对于重要的业务数据,这样做是否安全? 
    ----------
    没有必要...如果你连数据库服务器的安全都保证不了还谈什么安全...如果担心数据传输安全可用VPN、SSL等网络安全技术,在数据库里搞这种东西是费力不讨好...
      

  2.   

    数据库性能不会影响吧
    因为我认为你的Hash计算程序是在客户端完成的
      

  3.   

    重要的数据当然要加密存放了,防止不必要的人员看到(包括数据库维护人员)
    但是不能用哈希,一定要用可逆的加密算法.
    推荐使用 DESCryptoServiceProvider
      

  4.   

    不知道楼主所说的业务数据是指什么样的数据,如果是用户密码之类的静态数据可以这样操作,如果是数值型的数据那几乎不可能,很简单的例子,有一张订单表,其中有个金额字段,你对这个字段进行加密,如果这个表中有10万条记录需要汇总,怎么办?加密后的数据用group by肯定是不行了,只能全部读到客户端进行解密后由客户端汇总,这样的话仿佛回到了foxbase的年代,如果数据库的厂商知道有人这么愚蠢的使用的话,估计会吐血的
    人家没法解密你的数据直接删你的数据库不就完事了?那是不是还要在操作系统级别进行加密?
    人家直接把硬盘卸掉怎么办?那是不是还要在服务器上加把锁?
    人家直接把服务器端掉怎么办?那是不是还要在机房加个大铁门?
    仿佛又回到问题的原点,机房的钥匙给谁?
    晕死了,呵呵4楼说的正解,如果连数据库本身的安全都不能保证的话,再多的加密都是徒劳的