繁体   English   中英

在.Net 4中加密SQL Server / Decrypt

[英]Encrypt in SQL Server / Decrypt in .Net 4

我理解这可能是这个问题的重复: 如何加密sql server中的数据并在.net应用程序中解密 - 但这是在大约一年前问的,我希望可能有进步或其他东西。

无论如何,我们有一个应用程序,FTP文件从一个位置到另一个位置,显然FTP配置文件需要一个密码。 我们有一个包含配置文件所有详细信息的数据库,但我们需要加密密码。 我们已经考虑过在SQL中解密然后将它们发送到应用程序,但这意味着通过网络发送它,这是我们不想要的。

我们想要加密存储的密码,将细节传递给应用程序,然后在应用程序中解密它们。

这可能吗?

从我的谷歌搜索,它似乎不是,但我希望有人有一个技巧或东西。

提前致谢!

注意:我使用的是.Net 4和SQL Server 2008 R2。

使用SQL Server列加密API函数(如EncryptByKey )的加密和解密与任何客户端加密或解密都不兼容,因为它使用内部的,未记录的存储格式。

我会说,由于SQL Server提供了网络连接机密性,因此您不担心通过网络发送密码,请参阅加密与SQL Server的连接

您最好的选择是将密码存储在加密列中,并使用内置的SQL Server加密函数( EncryptByKeyDecryptbyKey )或使用透明数据库加密 标准也选择一个或另一个主要是许可要求(TDE要求企业版),因为TDE在每个方面都优于列级加密。 无论您选择何种解决方案,您都会很快意识到主要问题是密钥管理,并且SQL Server提供了一个可行的故事,请参阅加密层次结构 无论您如何设计解决方案,都不需要应用程序加密或解密密码本身,如果您需要,那么您显然是错误的路径(因为应用程序无法管理密钥本身),所以应该永远不会出现CLR加密和SQL加密兼容性的问题。

Simpy在.net中加密和解密密码,就SQL而言,它只是存储文本。

在我看来,“明显的答案”是你需要在SQL服务器和dotNet中使用相同的算法(或适当的匹配加密/解密对)。 因为前者使用T-SQL而后者是C#/ VB之类的托管代码语言,所以你必须用不同的语言编写/获取算法的两半。 育。

您是否考虑过使用SQL CLR 这样你就可以在C#中编写两个部分,并从SQL运行该代码。

我有副本这个坐在我书架上一段时间,但从来没有钻研过深到它-这主要是因为,虽然在主很冷静-我从来没有发现一个“需要”使用SQLCLR。 然而你的问题听起来像一个强大的候选人:-)

HTH :-)

达米安

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM