English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

طرق إخفاء معلومات الحساب الشخصي مثل الرقم الهاتف والبريد الإلكتروني باستخدام C#

Intro

عندما نقوم بمشروع، هناك بعض المعلومات الحساسة على الصفحة التي يجب إخفاء بعض المعلومات المهمة باستخدام "*"، لذا قررت كتابة طريقة عامة.

Let's do it !

Method 1: تحديد عدد الحروف على الجانبين

Method 1.1 : عدد النجوم في الوسط مرتبط بالطول الفعلي

/// <summary>
/// إخفاء المعلومات الحساسة
/// </summary>
/// <param name="info">معلومات الكائن</param>
/// <param name="left">عدد الحروف المحفوظة إلى اليسار</param>
/// <param name="right">عدد الحروف المحفوظة إلى اليمين</param>
/// <param name="basedOnLeft">عندما يكون الطول استثنائيًا، ما إذا كان سيتم عرض اليسار</param> 
/// <code>صحيح</code> عرض اليسار،<code>خطأ</code> عرض اليمين
/// </param>
/// <returns></returns>
public static string HideSensitiveInfo(string info, int left, int right, bool basedOnLeft=true)
{
if (String.IsNullOrEmpty(info))
{
return "";
}
StringBuilder sbText = new StringBuilder();
int hiddenCharCount = info.Length - left - right;
if (hiddenCharCount > 0)
{
string prefix = info.Substring(0, left), suffix = info.Substring(info.Length - right);
sbText.Append(prefix);
for (int i = 0; i < hiddenCharCount; i++)
{
sbText.Append("*");
}
sbText.Append(suffix);
}
else
{
if (basedOnLeft)
{
if (info.Length > left && left > 0)
{
sbText.Append(info.Substring(0, left) + "****");
}
else
{
sbText.Append(info.Substring(0, 1) + "****");
}
}
else
{
if (info.Length > right && right > 0)
{
sbText.Append("****" + info.Substring(info.Length - right));
}
else
{
sbText.Append("****" + info.Substring(info.Length - 1));
}
}
}
return sbText.ToString();
}

Method 1.2 : عدد النجوم في الوسط ثابت

/// <summary>
/// إخفاء المعلومات الحساسة
/// </summary>
/// <param name="info">معلومات الكائن</param>
/// <param name="left">عدد الحروف المحفوظة إلى اليسار</param>
/// <param name="right">عدد الحروف المحفوظة إلى اليمين</param>
/// <param name="basedOnLeft">عندما يكون الطول استثنائيًا، ما إذا كان سيتم عرض اليسار</param> 
/// <code>صحيح</code> عرض اليسار،<code>خطأ</code> عرض اليمين
/// <returns></returns>
public static string HideSensitiveInfo1(string info, int left, int right, bool basedOnLeft = true)
{
if (String.IsNullOrEmpty(info))
{
return "";
}
StringBuilder sbText = new StringBuilder();
int hiddenCharCount = info.Length - left - right;
if (hiddenCharCount > 0)
{
string prefix = info.Substring(0, left), suffix = info.Substring(info.Length - right);
sbText.Append(prefix);
sbText.Append("****");
sbText.Append(suffix);
}
else
{
if (basedOnLeft)
{
if (info.Length > left && left >0)
{
sbText.Append(info.Substring(0, left) + "****");
}
else
{
sbText.Append(info.Substring(0, 1) + "****");
}
}
else
{
if (info.Length > right && right>0)
{
sbText.Append("****" + info.Substring(info.Length - right));
}
else
{
sbText.Append("****" + info.Substring(info.Length - 1));
}
}
}
return sbText.ToString();
}

طريقة 2: "*" كمية ثابتة،ضبطها إلى 4،اختيار النسبة المئوية للطول الإجمالي للمعلومات،افتراضيًا يُاخذ اليسار واليمين كل 1/3

/// <summary>
/// إخفاء المعلومات الحساسة
/// </summary>
/// <param name="info">المعلومات
/// <param name="sublen">نسبة الطول الإجمالي للمعلومات إلى الأجزاء الفرعية (أو الأجزاء الفرعية) اليمنى
/// <param name="basedOnLeft">عندما يكون الطول استثنائيًا، هل يتم عرض اليسار،افتراضيًا صحيح،افتراضيًا يتم عرض اليسار
/// <code>صحيح</code> عرض اليسار،<code>خطأ</code> عرض اليمين
/// <returns></returns>
public static string HideSensitiveInfo(string info,int sublen = 3,bool basedOnLeft = true)
{
if (String.IsNullOrEmpty(info))
{
return "";
}
if (sublen<=1)
{
sublen = 3;
}
int subLength = info.Length / sublen;
if (subLength > 0 && info.Length > (subLength*2) )
{
string prefix = info.Substring(0, subLength), suffix = info.Substring(info.Length - subLength);
return prefix + "****" + suffix;
}
else
{
if (basedOnLeft)
{
string prefix = subLength > 0 ? info.Substring(0, subLength) : info.Substring(0, 1);
return prefix + "****";
}
else
{
string suffix = subLength > 0 ? info.Substring(info.Length-subLength) : info.Substring(info.Length-1);
return "****"+suffix;
}
}
}

توسيع

رقم الهاتف 1

/// <summary>
/// إخفاء تفاصيل رقم الهاتف
/// </summary>
/// <param name="phone">رقم الهاتف</param>
/// <param name="left">عدد الحروف المحفوظة على اليسار</param>
/// <param name="right">عدد الحروف المحفوظة على اليمين</param>
/// <returns></returns>
public static string HideTelDetails(string phone, int left = 3, int right = 4)
{
return HideSensitiveInfo(phone, left, right);
}

نتائج الاختبار كالتالي:

رقم الهاتف 2

/// <summary>
/// إخفاء تفاصيل رقم الهاتف
/// </summary>
/// <param name="phone">رقم الهاتف</param>
/// <param name="left">عدد الحروف المحفوظة على اليسار</param>
/// <param name="right">عدد الحروف المحفوظة على اليمين</param>
/// <returns></returns>
public static string HideTelDetails(string phone, int left = 3, int right = 4)
{
return HideSensitiveInfo1(phone, left, right);
}

نتائج الاختبار كالتالي:

عنوان البريد الإلكتروني

/// <summary>
/// إخفاء تفاصيل الزر اليمين
/// </summary>
/// <param name="email">عنوان البريد الإلكتروني</param>
/// <param name="left">حجم الحروف المحفوظة في رأس البريد،القيمة الافتراضية 3</param>
/// <returns></returns>
public static string HideEmailDetails(string email, int left = 3)
{
if (String.IsNullOrEmpty(email))
{
return "";
}
if (System.Text.RegularExpressions.Regex.IsMatch(email, @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"))//إذا كان عنوان البريد الإلكتروني
{
int suffixLen = email.Length - email.LastIndexOf('@');
return HideSensitiveInfo(email, left, suffixLen,false);
}
else
{
return HideSensitiveInfo(email);
}
}

نتائج الاختبار كالتالي:

ما تم ذكره أعلاه هو طريقة إخفاء معلومات الهاتف، البريد الإلكتروني وما إلى ذلك من قبل المبرمج C# التي قدمها المحرر لكم، آمل أن يكون ذلك مفيداً لكم، إذا كان لديكم أي أسئلة، فلا تترددوا في ترك تعليق، وسأقوم بالرد على رسائلكم في أقرب وقت ممكن، وأنا أتمنى أن تكونوا قد أثبتموا دعمكم لموقع呐喊 لتعليم البرمجة!

البيان: محتوى هذا المقال تم جمعه من الإنترنت، ملكية المادة تتبع صاحبها الأصلي، يتم جمع المادة من قبل المستخدمين عبر الإنترنت الذين يقدمون المساهمات ويتم تحميلها بشكل مستقل، لا تملك هذا الموقع حقوق الملكية، لم يتم تعديل المحتوى بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية مرتبطة بذلك. إذا اكتشفتم أي محتوى يخالف حقوق النسخ، الرجاء إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال '#' بـ '@') لإبلاغنا، وقدموا الدليل المتعلق، إذا تم التحقق من صحة المعلومات، سيتم حذف المحتوى المزعوم فوراً.

أنت قد تستمتع بهذا