Xcode C++ MD5 hash
Xcode C++ MD5 hash
我想在Xcode c++中使用MD5对一个简单的字符串进行哈希处理。我搜索了很多,但找不到教程。我必须#import <CommonCrypto/CommonDigest.h>
.仅此而已吗?之后我该如何拨打MD5?我找到了这段代码,但它给了我一个错误。我将如何获得我的哈希值是否在字符串变量中更新?
unsigned char digest[16];
const char* string = "Hello World";
struct MD5Context context; **(error: variable has incomplete type
MD5Init(&context);
MD5Update(&context, string, strlen(string));
MD5Final(digest, &context);
我只是使用一个简单的命令行应用程序,只有基本的 main.cpp 内部没有标头。我真的很感激任何帮助!!!
您使用了错误的API。我不确定你从哪里得到这些(它们看起来像OpenSSL调用),但它应该看起来像这样:
#include <stdio.h>
#include <string.h>
#include <CommonCrypto/CommonDigest.h>
int main()
{
unsigned char digest[CC_MD5_DIGEST_LENGTH];
const char string[] = "Hello World";
CC_MD5_CTX context;
CC_MD5_Init(&context);
CC_MD5_Update(&context, string, (CC_LONG)strlen(string));
CC_MD5_Final(digest, &context);
for (size_t i=0; i<CC_MD5_DIGEST_LENGTH; ++i)
printf("%.2x", digest[i]);
fputc('n', stdout);
return 0;
}
输出
b10a8db164e0754105b7a99be72e3fe5
在此处验证。
有一个一次性版本:
#include <CommonCrypto/CommonDigest.h>
unsigned char digest[16];
const char* string = "Hello World";
CC_MD5(string, (CC_LONG)strlen(string), digest);
您将需要包含Security.framework(或至少包含适用的库文件)。
相关文章:
- 什么是"#include <boost/functional/hash.hpp> "?
- 对自定义类使用 std::hash<uint64_t>
- 在Javascript和C++中计算MD5哈希的不同结果
- std::hash<std::string> 可以为不同的字符串返回相同的值吗?
- C++std::hash实现总是确定性的吗
- std::hash for std::chrono::duration
- Hash for a std::pair, for use in an unordered_map
- 为什么在这种特殊情况下不需要将 std::hash() 的专用化注入到 std 命名空间中?
- md5 inC++ with UTF16LE
- 为什么当我在MD5 Hash中转换相同的C 字符串时,每次都会获得不同的输出
- 在使用 JNI 将 c++ unordered_map转换为 java hashMap之前将其转换为 java hash
- "The C++ Library doesen't provide a hash for this type." - 在 std::unordered_map 中使用自己的类
- Qt/C++ hash of hashes
- 为什么不区分大小写适用于 std::unordered_set的 std::hash 函数?
- C++ 中的 MD5 实现返回不正确的摘要
- 错误:未使用不完整的类型'struct std::hash<>'无效
- 用于unordered_set<BSTR>的 Hash & EqualTo 函数
- 无法专门化 std::hash 以unordered_map存储自定义类型
- 如何使用Boost计算文件的MD5
- Xcode C++ MD5 hash