最近,我和一位朋友正在讨论如何保护 SQL Server 数据库中的存储过程代码。

从遥远的记忆中,我非常确定“加密”在 SQL Server 的所有版本中都非常容易被破解,但他说它在 SQL 2005 中得到了很大的改进。因此,我没有认真考虑将其作为我曾经使用过的任何系统中的安全选项。

那么什么场景下可以使用“加密”,什么时候应该不惜一切代价避免呢?

有帮助吗?

解决方案

它可用于向临时观察者隐藏您的代码,但正如您所说:它很容易被规避。

它确实不可能是任何其他方式,因为服务器需要解密代码才能执行它。基本上,它是 DRM,并且由于与所有其他 DRM 相同的原因而失败 - 您无法同时隐藏数据并允许访问它。

其他提示

@布洛格比德

很好的回应,关于“WITH ENCRYPTION”的 MSDN 文档似乎同意你的观点,现在称其为“混淆”而不是加密。

然而,我遇到过一些开发人员,他们完全没有意识到这一点。希望这个问题/回答也能告知其他人。

是的,它很容易坏。上周我遇到了一个情况,我必须解密前开发人员为我的客户加密的几个存储过程。在解密之后(这需要付出一定的努力),我不会依赖它来保护知识产权、密码、用户 ID 的任何方法。真的什么都可以。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top