Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL server上,什么可以作为加密的替代方案?_Sql_Sql Server_Encryption - Fatal编程技术网

在SQL server上,什么可以作为加密的替代方案?

在SQL server上,什么可以作为加密的替代方案?,sql,sql-server,encryption,Sql,Sql Server,Encryption,我们有一个过程,数据从一个数据库发送到另一个数据库进行分发。当时选择的过程是加密数据,因为所有人都可以访问数据库。然而,对数据进行解密是一个缓慢的过程。 除了保护服务器上的数据以防止访问外,还有哪些替代方案?简单回答:无。防止对数据库表有物理访问权限的人(注意:数据库表-大多数DBMS可以为单个表设置访问权限)读取数据的唯一方法是加密数据。其实很简单。这取决于您的需求 如果您真的需要对有权访问数据库的人保密数据,那么除了加密之外,您几乎别无选择 如果您要将数据发送到其他位置,并且传输本身需要安全

我们有一个过程,数据从一个数据库发送到另一个数据库进行分发。当时选择的过程是加密数据,因为所有人都可以访问数据库。然而,对数据进行解密是一个缓慢的过程。
除了保护服务器上的数据以防止访问外,还有哪些替代方案?

简单回答:无。防止对数据库表有物理访问权限的人(注意:数据库表-大多数DBMS可以为单个表设置访问权限)读取数据的唯一方法是加密数据。其实很简单。

这取决于您的需求

如果您真的需要对有权访问数据库的人保密数据,那么除了加密之外,您几乎别无选择

如果您要将数据发送到其他位置,并且传输本身需要安全,那么您可以使用EncOption进行通信,即https上的Web服务或tcp/ip上的自定义加密,或者保存到平面文件并将其作为一个整体进行加密

如果数据本身需要对有权访问它的人隐藏,那么就有一个问题,即数据需要有多安全。。如果您只是想避免使用明文,可以使用一些非常快速的加密算法,下面是一个示例

但是,如果您正在存储病历或银行信息等内容,那么您别无选择,只能升级硬件以提高性能,或者像男人一样花费处理时间;)


如果我们谈论的是密码,您只需要知道用户是否输入了正确的密码,那么您可以使用salt对密码进行哈希,并与数据库哈希进行比较,在此处阅读更多信息:。

两条建议

  • 与DBA合作创建角色并限制对敏感列的访问。在这种情况下,您不必加密
  • 由于法规要求,您必须加密的列很少。仅选择性地加密包含敏感数据的列

  • 也可以使用相对较快的算法,如AES。如果尚未缓存加密对象,您也可以缓存该对象。

    对数据进行散列怎么样?我们的过程需要2小时来解密160000行。似乎很长时间了。散列是不可逆的。它确实阻止了每个人阅读它——也就是说,每个人。无法从散列中获取明文。永远。它会变得更好。选择的解决方案一开始就不起作用。我想访问描述码很简单。如果也存储在服务器上,可能是的。@JohannesH。你不能说散列永远不会被逆转,这很不容易。对于所有加密来说,这基本上是一样的,它们都可以被反转,但在某些情况下,反转的时间太长,以至于被认为是不可能的。我的2美分关于算法的选择:如果性能是一个问题,总是选择AES,因为大多数现代处理器都有专用的硬件。如果AES被认为不够安全,那么双密钥长度——它仍然比硬件上支持AES的其他算法快得多。如果安全性比性能更重要,请使用蛇或Twofish。如果您告诉我们有关加密内容以及为什么需要加密的更多详细信息,我们可能会建议其他方法。如果您还提到谁获得了数据访问权,数据必须来自谁,以及出于什么原因,那就最好了。使用过的软件(DBMS、服务器等)也值得一提。