【问题标题】:C++ Builder - Using TIdHashSHA256 with OpenSSLC++ Builder - 将 TIdHashSHA256 与 OpenSSL 一起使用
【发布时间】:2014-08-08 14:03:52
【问题描述】:

据我了解,Indy 不直接实现 SHA256 及更高版本,我必须使用 OpenSSL。如果我使用以下内容,我不会得到任何结果:

#include <IdHashSHA.hpp>
...
TIdHashSHA256 *x = new TIdHashSHA256;
ShowMessage(BoolToStr(x->IsAvailable(), true)); 

我弄错了。我在某处读到我需要使用 IdSSLOpenSSLHeaders 并加载 SSL 库,但我不知道如何。谁能举例说明如何在 C++ Builder 中使用 SHA256?

【问题讨论】:

  • IdSSLOpenSSL.LoadOpenSSLLibrary 可能会深入研究以实现所需的摘要算法。
  • 是的。这有帮助。谢谢。

标签: c++ hash c++builder indy sha


【解决方案1】:

您需要调用LoadOpenSSLLibrary() 来初始化TIdHashSHA256 内部使用的OpenSSL 函数。

另外,IsAvailable() 是一个class 方法(类似于static 方法,但带有一个额外的元类参数),因此您不需要对象实例来调用它:

#include <IdSSLOpenSSLHeaders.hpp>
#include <IdHashSHA.hpp>
...
LoadOpenSSLLibrary(); // <-- add this

// if using CB2007 or earlier:
ShowMessage(BoolToStr(TIdHashSHA256::IsAvailable(__classid(TIdHashSHA256)), true)); 

// if using CB2009 or later:
ShowMessage(BoolToStr(TIdHashSHA256::IsAvailable(), true)); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 2011-04-12
    • 2016-11-29
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多