Untitled
unknown
plain_text
a year ago
2.2 kB
4
Indexable
#include <iostream> #include <string> #include <cctype> #include <algorithm> // Function to check if a string is an email address bool isEmailAddress(const std::string& data) { return data.find('@') != std::string::npos; } // Function to mask an email address std::string maskEmailAddress(const std::string& email) { std::string result; std::string localPart, domainPart; size_t atPosition = email.find('@'); localPart = email.substr(0, atPosition); domainPart = email.substr(atPosition); // Convert all characters to lowercase std::transform(localPart.begin(), localPart.end(), localPart.begin(), ::tolower); std::transform(domainPart.begin(), domainPart.end(), domainPart.begin(), ::tolower); // Mask the local part result = localPart[0] + std::string(5, '*') + localPart.back() + domainPart; return result; } // Function to mask a phone number std::string maskPhoneNumber(const std::string& phoneNumber) { std::string digits; // Extract all digits from the input string for (char ch : phoneNumber) { if (isdigit(ch)) { digits += ch; } } int numDigits = digits.size(); std::string maskedNumber; // Determine the country code and format the masked number accordingly if (numDigits > 10) { int countryCodeLength = numDigits - 10; maskedNumber = "+" + digits.substr(0, countryCodeLength) + "-"; digits = digits.substr(countryCodeLength); } // Append the local number maskedNumber += "***-***-" + digits.substr(digits.size() - 4); return maskedNumber; } // Function to mask sensitive information std::string maskSensitiveInformation(const std::string& data) { if (isEmailAddress(data)) { return maskEmailAddress(data); } else { return maskPhoneNumber(data); } } int main() { std::string data1 = "John.Doe@example.com"; std::string data2 = "+1-234-567-8900"; std::cout << "Masked Email: " << maskSensitiveInformation(data1) << std::endl; std::cout << "Masked Phone: " << maskSensitiveInformation(data2) << std::endl; return 0; }
Editor is loading...
Leave a Comment