【问题标题】:How to use SHA-256 crypt with musl?如何将 SHA-256 crypt 与 musl 一起使用?
【发布时间】:2020-05-10 16:35:56
【问题描述】:

我正在使用 musl:https://www.musl-libc.org

如果我浏览存储库,我可以看到有一堆与 crypt 相关的源文件(包括 crypt_sha256.c)。

问题是它们没有头文件。我应该如何使用它们?

这些是我系统上的 lib 中的符号:

我也找不到任何来自谷歌的代码示例如何使用 musl 的 SHA-256 功能。

谢谢!

【问题讨论】:

  • 你应该接受 R.s 的回答 ;) 不能直截了当
  • 我认为 Ctx 很好地回答了这个问题;我的回答只是提供了额外的信息。我很高兴其他人也能获得代表;我确实不需要它。

标签: c sha256 musl


【解决方案1】:

这不是通用的 SHA-256 消息摘要算法,而是 crypt(3) 密码散列函数使用的特定算法。有关如何使用该函数,请参阅该函数的文档。

【讨论】:

    【解决方案2】:

    你说的没错,就是三个函数

    • sha256_init()
    • sha256_update()
    • sha256_sum()

    确实是通用的 SHA256 哈希函数。

    遗憾的是,这些符号并未公开导出,而仅在内部用于生成$5$0rXgD0/KkyyT0$5PPj3bke0vPxsMDlSXzBz2D3TFNahLrXSs7.elU3u2/ 形式的加盐密码哈希

    因此,没有提供使用这些函数的公共头文件。仅导出更高级别的函数crypt_sha256()

    他们决定不导出通用接口的原因只能推测,至少我找不到解释。

    【讨论】:

    • 我可以回答这个问题。 :-)
    • 完成。本来可以早点做的,但是当我尝试发帖时,我的 isp 正在崩溃。
    【解决方案3】:

    正如 Ctx 所写并评论说不知道原因,这些函数没有被导出。我可以填写那个原因。

    通常,musl 不会单方面发明新接口,这些新接口几乎肯定会以微妙的方式与其他 libc 提供者最终发明的类似接口有所不同。我们正在启动一个不像 POSIX 标准化过程那样正式的跨 libc 协作组,这可能使将来提供一些这样的接口变得合理,并且最终可能会将上游出现的一些共识汇集到 POSIX 中。

    简而言之,欢迎任何想要使用这些实现的人复制代码并根据许可条款使用它。它们体积小、独立且许可许可,通过这种方式使用它们,您不会锁定任何外部接口边界的签名。但是,与加密代码一样,您应该小心旁道泄露机密的任何风险。正如在 musl 中使用的那样,我认为这不是问题,但我没有分析其他可能的用途,选择专为任意加密设置使用而设计的实现可能更安全。

    【讨论】:

    • 谢谢你的解释,这个道理我能理解。
    猜你喜欢
    • 1970-01-01
    • 2015-03-14
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多