如何将SHA-256 crypt与musl一起使用?

如何将SHA-256 crypt与musl一起使用?,c,sha256,musl,C,Sha256,Musl,我正在使用musl: 如果我浏览存储库,我可以看到有一堆与crypt相关的源文件(包括crypt_sha256.c) 问题是它们没有头文件。我该如何使用它们 以下是我的系统库中的符号: 我也找不到谷歌关于如何使用musl的SHA-256功能的任何代码示例 谢谢 这不是通用的SHA-256消息摘要算法,而是密码哈希函数使用的特定算法。有关该函数的使用方法,请参阅文档。您是正确的,这三个函数 sha256_init() sha256_更新() 沙乌森() 确实是通用的SHA256哈希函数 不

我正在使用musl:

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

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

以下是我的系统库中的符号:

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


谢谢

这不是通用的SHA-256消息摘要算法,而是密码哈希函数使用的特定算法。有关该函数的使用方法,请参阅文档。

您是正确的,这三个函数

  • sha256_init()
  • sha256_更新()
  • 沙乌森()
确实是通用的SHA256哈希函数

不幸的是,这些符号不是公开导出的,而是仅在内部用于生成格式为
$5$0rXgD0/KkyyT0$5PPJ3BKE0VPXSMDLSXZBZ2D3TFNAHLXSS7.elU3u2/

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


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

正如Ctx在不知道原因的情况下所写和评论的那样,这些函数没有导出。我可以填写这个理由

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


除此之外,任何想要使用这些实现的人都可以复制代码并根据许可条款使用它。它们很小,是独立的,并且是许可的,通过这种方式使用它们,您不会锁定任何外部接口边界的签名。不过,与加密代码一样,您应该小心任何旁道泄漏机密的风险。在musl中使用时,我不认为这是一个问题,但我还没有分析其他可能的用途,选择一个设计用于任意加密设置的实现可能更安全。

我可以回答这个问题。:-)完成。我本来可以做得更快,但我的isp在我发帖的时候出了问题。谢谢你的解释,我能理解这个原因。你应该接受R.s的答案;)直截了当地说,我认为Ctx很好地回答了这个问题;我的回答只是提供了额外的信息。我很高兴其他人也得到了代表;我当然不需要它。