通过NHibernate进行数据库端加密

时间:2008-11-14 16:22:23

标签: nhibernate encryption

我们希望通过NHibernate使用数据库端加密来加密字段(我们遇到的大多数示例都是应用程序端,这不是我们想要的)。问题已经提出了几次,但似乎还没有答案。

例如,在SQL Server 2005上,忘记了与密钥相关的问题,这意味着INSERTing EncryptByKey(Key_GUID(MyKey),MyValueToEncrypt)和SELECTing DecryptByKey(MyEncryptedField)。该属性可能是一个字符串,而该字段必须是varbinary。

我们模糊地得到了某个地方 - 使用upper()和lower()而不是加密函数 - 通过组合成对属性,一个用自定义用户类型映射,另一个用公式属性映射。

然而,如果有人对如何以更好的方式做到这一点有任何想法,我们将非常感谢几点:o)

3 个答案:

答案 0 :(得分:1)

NHibernate forum

上发布令人讨厌的黑客大纲

答案 1 :(得分:0)

SourceForge上有一个项目MindLib,它有很多有用的NHibernate实用程序函数和库。其中一个是EncryptedString库,它允许您存储加密的字符串。不幸的是,这并不像你最初要求的那样在服务器端进行。

我一直在寻找类似的东西。我唯一能想到的是在SQL Server中创建一个用户函数来加密字符串。类似于this

MindLib EncryptedString

答案 2 :(得分:0)

感谢您的反馈!我们将MindLib方法作为最后的手段,因为它有效地将数据所有权从数据库替换为应用程序。据我们所知,支持TDE的数据库(比如说SQL Server 2008或Oracle 10.2)会让问题消失,但并非所有客户都愿意放弃升级; o)