1eace7efcSopenharmony_ci/* 2eace7efcSopenharmony_ci* Copyright (c) 2023 Huawei Device Co., Ltd. 3eace7efcSopenharmony_ci* Licensed under the Apache License, Version 2.0 (the "License"); 4eace7efcSopenharmony_ci* you may not use this file except in compliance with the License. 5eace7efcSopenharmony_ci* You may obtain a copy of the License at 6eace7efcSopenharmony_ci* 7eace7efcSopenharmony_ci* http://www.apache.org/licenses/LICENSE-2.0 8eace7efcSopenharmony_ci* 9eace7efcSopenharmony_ci* Unless required by applicable law or agreed to in writing, software 10eace7efcSopenharmony_ci* distributed under the License is distributed on an "AS IS" BASIS, 11eace7efcSopenharmony_ci* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12eace7efcSopenharmony_ci* See the License for the specific language governing permissions and 13eace7efcSopenharmony_ci* limitations under the License. 14eace7efcSopenharmony_ci*/ 15eace7efcSopenharmony_ci 16eace7efcSopenharmony_ci#ifndef OHOS_ABILITY_RUNTIME_COMMON_UTILS_H 17eace7efcSopenharmony_ci#define OHOS_ABILITY_RUNTIME_COMMON_UTILS_H 18eace7efcSopenharmony_ci 19eace7efcSopenharmony_ci#include <string> 20eace7efcSopenharmony_ci 21eace7efcSopenharmony_cinamespace OHOS { 22eace7efcSopenharmony_cinamespace AAFwk { 23eace7efcSopenharmony_ciclass CommonUtils { 24eace7efcSopenharmony_cipublic: 25eace7efcSopenharmony_ci static std::string Anonymous(const std::string &name) 26eace7efcSopenharmony_ci { 27eace7efcSopenharmony_ci static constexpr uint32_t HEAD_SIZE = 6; 28eace7efcSopenharmony_ci static constexpr int32_t END_SIZE = 5; 29eace7efcSopenharmony_ci static constexpr int32_t MIN_SIZE = HEAD_SIZE + END_SIZE + 3; 30eace7efcSopenharmony_ci static constexpr const char *REPLACE_CHAIN = "***"; 31eace7efcSopenharmony_ci static constexpr const char *DEFAULT_ANONYMOUS = "******"; 32eace7efcSopenharmony_ci if (name.length() <= HEAD_SIZE) { 33eace7efcSopenharmony_ci return DEFAULT_ANONYMOUS; 34eace7efcSopenharmony_ci } 35eace7efcSopenharmony_ci 36eace7efcSopenharmony_ci if (name.length() < MIN_SIZE) { 37eace7efcSopenharmony_ci return (name.substr(0, HEAD_SIZE) + REPLACE_CHAIN); 38eace7efcSopenharmony_ci } 39eace7efcSopenharmony_ci 40eace7efcSopenharmony_ci return (name.substr(0, HEAD_SIZE) + REPLACE_CHAIN + name.substr(name.length() - END_SIZE, END_SIZE)); 41eace7efcSopenharmony_ci } 42eace7efcSopenharmony_ci}; 43eace7efcSopenharmony_ci} 44eace7efcSopenharmony_ci} // namespace OHOS 45eace7efcSopenharmony_ci#endif //OHOS_ABILITY_RUNTIME_COMMON_UTILS_H 46