有任何c++库可以使用类字符串与Md5一起使用吗
Any c++ library to work with Md5 using class string?
是否有任何c++标准库可以通过使用c++std::string
而不是signedunsigned char*
来处理Md5哈希(可能还有其他哈希(?。我在openssl/md5.h
中没有发现它的实现,因为它的函数MD5有这样的头:unsigned char *MD5(const unsigned char *d, unsigned long n, unsigned char *md);
我之所以这么问,是因为我试图将QLabel lbResult
的文本设置为字符串(来自QString&arg1(输入摘要的结果
MD5((const unsigned char *) arg1.toStdString().c_str(),32,cryptResult);
ui->lbResult->setText(getStringFromUnsignedChar(cryptResult));
我必须构建这个getStringFromUnsignedChar
,它从结果中返回一个QString
对象,但如果我有string MD5(string s);
行,所有这些强制转换和这个函数都可以避免。提前谢谢。
您可以使用QCryptographicHash。例如:
QByteArray hash = QCryptographicHash::hash(arg1.toUtf8(), QCryptographicHash::Md5);
ui->lbResult->setText(hash.toHex());
您可以编写一个包装器:
std::string md5(const std::string &str) {
std::array<unsigned char, MD5_DIGEST_LENGTH> result;
MD5(reinterpret_cast<const unsigned char*>(str.data()), str.size(), result.data());
return std::string(reinterpret_cast<const char*>(result.data()), result.size());
}
相关文章:
- 如何将enable-if与模板参数和参数包一起使用
- 如何将PERF_AMPLE_READ与mmap一起使用
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 如何将C++中的库和头与MinGW一起使用
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 为什么我不能将 rand() 与数组的大小一起使用?
- 要与"if constexpr"一起使用的编译时消息(在预处理器之后)
- 不能将复制初始化与隐式转换的多个步骤一起使用
- 将fold表达式与std::一起用于两个元组
- spdlog标头仅与外部fmt一起使用.spdlog错误:'内部':不是'fmt'
- 将 std::allocate_shared 与多态资源分配器一起使用
- 为什么常量词在重载运算符中不与 ostream 对象一起使用<<?
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 将 exprtk 与自定义类的对象一起使用
- 将 std::set 与基于键的比较器一起使用
- 将 C++ 类与 Rcpp 一起使用,从 C 或 R 修改它
- 如何将 Eigen::Ref 与 pybind11 一起使用?
- 如何将AERT_Allocate与 std:vector 一起使用
- 如何使我的 sizeof sum 结构与空参数包一起工作
- 有任何c++库可以使用类字符串与Md5一起使用吗