代码之家  ›  专栏  ›  技术社区  ›  ZippyV

哈希密码和实体框架

  •  2
  • ZippyV  · 技术社区  · 15 年前

    我有一个用户表,hashedpassword列是二进制(16)类型。它用于存储MD5哈希。为了生成散列,我创建了两个存储过程:createuser、edituser和loginuser。他们有一个接受明文密码的参数,将其转换为MD5哈希,并在表中存储/查找哈希。

    问题是我如何将其与实体框架相匹配?我尝试在用户实体中创建一个额外的“密码”字段,然后将该字段与存储过程连接,但我收到一个错误消息,说这个新密码字段未连接到用户表中的列。

    我刚开始使用实体框架,所以可能遗漏了一些明显的东西。也许我应该把哈希生成代码保存在.NET中而不是数据库中。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Misha N.    15 年前

    我认为最简单的方法是按照您的建议:在.NET中保留哈希生成代码。

    不确定是否可以将EDM配置为您想要的工作方式,但是在我看来,将安全逻辑、数据访问层和存储层分离听起来像是逻辑。

        2
  •  1
  •   Community CDub    7 年前

    你有没有看过 Membership 框架?它处理用户、密码、登录名、角色等的所有不愉快。

    还有,我在 prior posts ,MD5不安全。俄歇电子能谱或 BCrypt 现在是更安全的散列方法。