1e0e9324cSopenharmony_ci/* 2e0e9324cSopenharmony_ci * Copyright (c) 2023 Shenzhen Kaihong Digital Industry Development Co., Ltd. 3e0e9324cSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e0e9324cSopenharmony_ci * you may not use this file except in compliance with the License. 5e0e9324cSopenharmony_ci * You may obtain a copy of the License at 6e0e9324cSopenharmony_ci * 7e0e9324cSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e0e9324cSopenharmony_ci * 9e0e9324cSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e0e9324cSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e0e9324cSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e0e9324cSopenharmony_ci * See the License for the specific language governing permissions and 13e0e9324cSopenharmony_ci * limitations under the License. 14e0e9324cSopenharmony_ci */ 15e0e9324cSopenharmony_ci 16e0e9324cSopenharmony_ci#include "crypto.h" 17e0e9324cSopenharmony_ci#include <iomanip> 18e0e9324cSopenharmony_ci#include <sstream> 19e0e9324cSopenharmony_ci 20e0e9324cSopenharmony_cinamespace OHOS { 21e0e9324cSopenharmony_cinamespace Sharing { 22e0e9324cSopenharmony_ci 23e0e9324cSopenharmony_cistd::string GetMD5(const std::string &src) 24e0e9324cSopenharmony_ci{ 25e0e9324cSopenharmony_ci int md5DigestLength = 4; 26e0e9324cSopenharmony_ci unsigned char MD5Hash[md5DigestLength]; 27e0e9324cSopenharmony_ci std::string MD5Digest; 28e0e9324cSopenharmony_ci std::string tmp; 29e0e9324cSopenharmony_ci std::stringstream ss; 30e0e9324cSopenharmony_ci 31e0e9324cSopenharmony_ci for (int32_t i = 0; i < md5DigestLength; ++i) { 32e0e9324cSopenharmony_ci ss << std::hex << std::setw(2) << std::setfill('0') << (int32_t)MD5Hash[i] << std::endl; // 2: fix offset 33e0e9324cSopenharmony_ci ss >> tmp; 34e0e9324cSopenharmony_ci MD5Digest += tmp; 35e0e9324cSopenharmony_ci } 36e0e9324cSopenharmony_ci 37e0e9324cSopenharmony_ci return MD5Digest; 38e0e9324cSopenharmony_ci} 39e0e9324cSopenharmony_ci 40e0e9324cSopenharmony_ci} // namespace Sharing 41e0e9324cSopenharmony_ci} // namespace OHOS