【问题标题】:Distributed app, password hash分布式应用,密码哈希
【发布时间】:2011-01-10 18:15:43
【问题描述】:

我们有一个分布式应用程序和用户数据库表。他们的密码将存储为哈希值。应用程序由win服务、winforms、asp和java程序组成。 一位 Java 开发人员有一个函数可以计算字符串的 md5 哈希值(使用硬编码键),并提供在其他任何地方使用它(这意味着将 java 代码导入 c# 并乘以需要它的应用程序)。这是个好主意吗? 您有什么建议,人们在这种情况下通常会怎么做?

附:我们使用 Oracle 数据库。

【问题讨论】:

  • Oracle 的哪个版本和版本(9i Standard、11g Enterprise 等)?
  • Oracle 9。但我想知道是否有统一的方法来计算它,以便所有应用程序都重用它。

标签: c# java database oracle security


【解决方案1】:

您可以让所有应用程序将密码传递给数据库,并在数据库中创建一个存储过程,根据存储的哈希检查给定的密码。

有一个用于计算哈希的标准 PL/SQL 函数:DBMS_OBFUSCATION_TOOLKIT.MD5

你可以在这里找到更完整的方法:http://www.oracle-base.com/articles/9i/StoringPasswordsInTheDatabase9i.php

【讨论】:

    【解决方案2】:

    Md5 实际上没有密钥,因为它是哈希而不是加密。 java 和 c# 都内置了 Md5 哈希。

    任何机构都需要编写什么代码?每种实现语言最多只有几行代码......加上一些测试来检查每个人的结果是否相同,大小写等。

    【讨论】:

    • 我不确定他使用的是什么函数(可能不是MD5),我只知道它计算哈希并且是手写的。
    • 我不建议您编写(或者更确切地说 - 请不要编写)您自己的哈希函数(如密码/摘要)。使用标准的。如果您使用标准的,请使用您的语言中已经内置的实现。
    猜你喜欢
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2023-03-02
    • 2015-11-30
    • 2018-01-31
    • 2020-04-19
    • 2017-11-30
    相关资源
    最近更新 更多