【问题标题】:sha1 function in cpp (C++)cpp (C++) 中的 sha1 函数
【发布时间】:2020-03-02 17:47:33
【问题描述】:

我首先要说我对 c++ 一无所知,然后我用 Google 搜索,没有什么能让我了解如何在 C++ 中使用 SHA1。虽然Objective C: SHA1 找到了这个,但它关于目标 c 我不确定它是否相同。

我需要做以下事情:

我有很多文件,我通过 ./make.sh 编译它们,在一个名为 server.cpp 的文件中,我需要在这部分插入 SHA1 info_hash:

Csql_query(m_database, "insert into @files (info_hash, mtime, ctime)
 values (?, unix_timestamp(), unix_timestamp())").p(i.first).execute();

所以我觉得我需要执行以下 sha1(?)。 “?”我需要的不是 info_hash。我认为它会在某处产生“?”是一个变量。

所以请不要告诉我添加任何类或其他内容,因为我不明白该怎么做,如果我需要在文件开头添加一些内容,请告诉我。

【问题讨论】:

  • 我理解对了吗?你说没有什么能让你明白如何在 C++ 中处理这个问题。我们也不会告诉你该怎么做,因为你无论如何也不会明白。你为什么还要问一个与 C++ 相关的问题?你期待什么样的答案? C++ 不是 PHP,没有内置的sha1("cat") 函数。

标签: c++ sha1


【解决方案1】:

一个很好的 SHA1 和其他函数库是 cryptopp

这是另一个答案是cryptopp的问题:Fast Cross-Platform C/C++ Hashing Library

【讨论】:

  • 在 PHP 中我这样做:sha1("cat") PHP 返回 9d989e8d27dc9e0ec3389fc855f142c3d40f0c50 我如何在 C++ 中做到这一点?
  • 要使用 SHA(),您需要 libssl-dev 然后与 -lssl -lcrypto 链接,您可以根据标志进一步使用(ARM8 /Graviton2 说)CPU 支持。鉴于这个问题已有 10 年历史,现在有很多关于 GH 的例子。如果性能无关紧要,也可以选择对 bash 进行系统调用。
【解决方案2】:

看起来.p(i.first) 部分已经将i.first 的值替换为查询中的?。大概i.first 将是适合info_hash 列的值。

如果没有看到更多代码,就无法确定。

【讨论】:

  • 在 PHP 中我这样做:sha1("cat") PHP 返回 9d989e8d27dc9e0ec3389fc855f142c3d40f0c50 我如何在 C++ 中做到这一点?
【解决方案3】:

这是一个library that implements SHA1() - 可能有更好的库,即更高效的库,但这很好地解释了如何使用它。

如果您想计算文件的 SHA1,可以使用 Microsoft utility

【讨论】:

  • 嗨,@martin,它可能确实为那些从 C++ 中至少了解一点的人解释了一切,但我不知道什么是库或如何使用它(好的应该类似于php 类,但仍然)。
  • 我需要有人来编辑我提供的代码或告诉我如何编辑它,以便作为信息哈希传递的参数将通过 sha1 编码进行编码,因为我需要它在表中sha1(word) 因为我对 php 做同样的事情,之后我需要将它们两个匹配在一起。
  • @Treat:如果您不愿意任何努力自己解决这个问题,就不能指望我们提供帮助。
  • @greg 我不想成为 C++ 编码员,我根本不需要知道那种语言。我只需要知道我该怎么做(我将展示如何在 php 中完成)
  • 我愿意:sha1("cat") PHP 返回 9d989e8d27dc9e0ec3389fc855f142c3d40f0c50 我如何在 C++ 中做到这一点?
猜你喜欢
  • 2014-09-25
  • 2013-05-11
  • 1970-01-01
  • 1970-01-01
  • 2011-04-28
  • 2021-01-12
  • 1970-01-01
  • 2017-09-12
  • 2018-03-10
相关资源
最近更新 更多