English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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">길이가 이상적이지 않을 때, 왼쪽을 표시할지 여부 /// <code>true</code>왼쪽 표시, <code>false</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">길이가 이상적이지 않을 때, 왼쪽을 표시할지 여부 /// <code>true</code>왼쪽 표시, <code>false</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(); }
Method 2 : “*”갯수가 일정하면, 설정됨4개, 정보 총 길이의 비율에 따라 선택됨, 기본적으로 왼쪽과 오른쪽 각각1/3
/// <summary> /// 감추어진 감정 정보 /// </summary> /// <param name="info">정보</param> /// <param name="sublen">정보 총 길이와 왼쪽 서브 문자열(또는 오른쪽 서브 문자열)의 비율</param> /// <param name="basedOnLeft">길이가 이상하면 왼쪽을 표시할지 여부, 기본적으로 true, 기본적으로 왼쪽 표시}} /// <code>true</code>왼쪽 표시, <code>false</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 &63; info.Substring(0, subLength) : info.Substring(0, 1); return prefix + "****"; } else { string suffix = subLength > 0 &63; 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#w로 이메일을 보내 주시기 바랍니다.3codebox.com(보고할 때는 #을 @으로 변경하십시오.)를 통해 신고하시고 관련 증거를 제공하시면, 사실이 확인되면 이 사이트는 즉시 저작권 침해 내용을 삭제할 것입니다.