【问题标题】:how to use Oracle's dbms crypto to create htpasswd compatible passwords如何使用 Oracle 的 dbms 加密来创建与 htpasswd 兼容的密码
【发布时间】:2012-07-05 21:35:55
【问题描述】:

有没有办法使用Oracles DBMS_CRYPTO PL/SQL 包来创建密码 与apache的htpasswd兼容吗?因此,在 PL/SQL 包中,我创建了一个散列密码,稍后将其存储在 .htpasswd 文件中时,它可以正常工作。

我们目前在 unix 中使用命令 htpasswd -n -b -d 执行此操作。但是,我们想创建它们并将它们保存在 Oracle 表中。然后在需要时检索它们以创建 .htpasswd 文件。

谢谢!

【问题讨论】:

    标签: oracle plsql .htpasswd dbms-crypto


    【解决方案1】:

    htpasswd 工具能够生成一些散列密码类型。您正在使用 -d 标志,它使用史前的 crypt() 哈希格式。 crypt() 哈希值非常不安全,而且非常容易破解。

    根据this manual page from Oracle 10gDBMS_CRYPTO支持crypt()。这并不奇怪。

    您需要切换到不同的散列算法才能实现这一目标。最直接的方法相当于使用-s 标志而不是-d 标志来创建SHA1 密码。在命令行上试试看结果。给出的密码格式是文字字符串{SHA},后跟base64 编码的SHA1 哈希,没有加盐。 DBMS_CRYPTO 包似乎支持 SHA1,并暗示还有一个函数可以进行 base64 编码。或者,如果您自己生成 .htpasswd 文件,您可以简单地以您喜欢的任何方式存储哈希,然后使用您选择的语言将其转换为输出。

    【讨论】:

    • Charles;非常感谢您提供的信息丰富的回复。我为我迟到的回复道歉,但已经离开了几天。我会试一试并发布我的结果。
    猜你喜欢
    • 2012-10-30
    • 1970-01-01
    • 2010-09-14
    • 2021-07-20
    • 2012-11-01
    • 2018-01-04
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    相关资源
    最近更新 更多