HarmonyOS 消息摘要计算(C++)示例中得到的md5码结果不对?

阅读 975
1 个回答

可参考:

static OH_Crypto_ErrCode doTestMd() {
  OH_Crypto_ErrCode ret;
  OH_CryptoDigest *ctx = nullptr;

  char *testData = const_cast<char *>("0123456789");
  Crypto_DataBlob in = {.data = (uint8_t *)(testData), .len = strlen(testData)};
  Crypto_DataBlob out = {.data = nullptr, .len = 0};

  int mdLen = 0;
  ret = OH_CryptoDigest_Create("MD5", &ctx);
  if (ret != CRYPTO_SUCCESS) {
    return ret;
  }
  do {
    ret = OH_CryptoDigest_Update(ctx, &in);
    if (ret != CRYPTO_SUCCESS) {
      break;
    }
    ret = OH_CryptoDigest_Final(ctx, &out);
    if (ret != CRYPTO_SUCCESS) {
      break;
    }
    mdLen = OH_CryptoDigest_GetLength(ctx);
    for (int i = 0; i < out.len; i++) {
      OH_LOG_INFO(LOG_APP, "0x%{public}02X", out.data[i]);
    }
  } while (0);
  OH_Crypto_FreeDataBlob(&out);
  OH_DigestCrypto_Destroy(ctx);
  return ret;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进