在 C 中使用 SHA1

发布于 2024-11-26 15:42:05 字数 262 浏览 0 评论 0原文

我正在用 C 语言开发一个工具,它接受一个文件作为输入。我需要计算该文件的 SHA1 总和。该工具需要与Linux、Mac和Windows平台兼容。这些文件的大小非常巨大,从 150MB 到 2G 不等。我需要该工具能够至少与 sha1sum Linux 实用程序一样快地计算 SHA。

有什么建议我可以如何合并 SHA1 吗?我对使用 openssl 接口持谨慎态度,因为该工具的客户端不需要安装 openssl

I am developing a tool in C which takes in a file as a input. I need to compute the SHA1 sum for the file. This tool needs to be platform compatible with Linux, Mac and windows. The files are huge in size ranging from 150MB to 2G. I need the tool to be able to compute the SHA at least as fast as the sha1sum Linux utility.

Any suggestions how I could go about incorporating SHA1? I am wary about using the openssl interface, since the clients for the tool would not necessary have openssl installed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

往日 2024-12-03 15:42:05

OpenSSL 是 C 语言事实上的标准。它不需要安装,因为您可以随程序一起提供该库(甚至静态编译它)。

OpenSSL 是 BSD 风格的许可,因此您甚至可以直接在程序中使用它们的 SHA1 代码(给予信任),尽管将其与库解耦可能很棘手。

OpenSSL is the de facto standard in C. It needn't be installed since you can supply the library along with your program (or even statically compile it).

OpenSSL is BSD-style licensed, so you can even use just their SHA1 code directly in your program (giving credit), though it may be tricky to decouple it from the library.

断念 2024-12-03 15:42:05

我的 R digest 包包含 md5、sha1、sha256 等简短的独立 C 源代码。 . 克里斯托夫·迪瓦恩 (Christophe Devine) 撰写。这是很好的代码,并且包含一些复制规范中的参考结果的测试。

我相信他的网站已经不存在了,但是当我检查 Google Code Search 时,发现许多其他开源项目中似乎已经包含了相同的功能。您可以轻松地从我的 tarball 中提取这些源代码,甚至直接从 SVN 目录中提取这些源代码: R-Forge 的摘要存储库

My digest package for R includes short standalone C sources for md5, sha1, sha256, ... which were written by Christophe Devine. It is nice code, and it includes a few tests replicating the reference results from the specifications.

I believe his site no longer exists, but when I eg checked Google Code Search for it, the same functions seem to have been included in a number of other open source projects. You can easily extract these sources from my tarballs or even directly from the SVN directory at R-Forge's digest repo.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文