【问题标题】:CLR Assembly for Encryption/Decryption用于加密/解密的 CLR 程序集
【发布时间】:2010-10-10 09:36:00
【问题描述】:

我们最近在 MS SQL 2005 中实现了一些对称密钥,用于加密和解密信用卡、检查路由/帐号。

理想情况下,我们希望用户定义的函数能够执行加密和解密,但是这是不可能的,因为 encryptbykey 和 decryptbykey 函数不能在用户定义的函数中使用。

最初我认为我们可以创建一个带有函数的 CLR 程序集(在 C# 中)来执行此操作,但是,因为我了解到适用相同的规则。

我想知道其他人一直在做什么来轻松执行此功能。创建许多存储过程,例如:

打开对称键...
选择用户名,decryptByKey(...) AS 密码 关闭对称键...

...对于我们将加密/解密的许多领域来说,这将是非常乏味的。

【问题讨论】:

  • 您在解密密码?真的吗?你知道那根本不是好的设计。密码应该是单向散列的。可解密的密钥会使数据库中的每个密码都容易受到攻击。
  • 好吧,我主要将它用于信用卡号码,并检查路由/帐号。
  • 如果您正在处理此类敏感信息,我强烈建议您对加密/安全性进行一些研究。做好准备总比后悔好!
  • 我使用 rot13 两次以获得额外保护! :D
  • @Will 一些数据库确实将密码存储到其他系统,例如 gmail 的 pop3 获取服务。我会说尽可能晚地进行解密并尽早进行加密。在某些时候,数据库不是解密数据的安全场所。

标签: c# sql-server encryption assemblies clr


【解决方案1】:

不管是不是一个好主意,一个带有输出参数的存储过程来实现与udf相同的效果如何?

【讨论】:

  • 这正是我最终所做的。我正在创建一个 C# 程序集 sp ... 创建为一个程序集以隐藏证书密码
猜你喜欢
  • 2020-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-30
相关资源
最近更新 更多