>  기사  >  백엔드 개발  >  C# 문자열 처리 가젯에 대한 자세한 소개

C# 문자열 처리 가젯에 대한 자세한 소개

黄舟
黄舟원래의
2017-03-17 11:43:321456검색

이 글에서는 주로 C#문자열 처리 가젯을 소개합니다. 정규식 일치, base64 암호화, ROT13 암호화 및 암호 해독, MD5 매우 좋은 참조 값을 가지고 있습니다. 아래 에디터와 함께 살펴보겠습니다

저는 대학시절 보안에 푹 빠져 있었습니다. 그 당시 저는 항상 문자열 처리를 위한 작은 프로그램을 작성하고 싶었습니다.

아쉽게도 당시 시간이 많지 않아서 이번 겨울방학까지 계속 미루었어요.

겨울방학 동안 할 일이 없어서 실력을 연습하고 양식과 기초를 복습하는 작은 프로그램을 작성했습니다.

은 다음 기능을 구현합니다.

대문자로 변환

소문자로 변환

문자열 반전

문자열 일치 횟수

정기 매칭

base64 암호화

base64 복호화

ROT13 암호화 및 복호화

MD5 32비트 암호화

프로그램은 여전히 ​​매우 간단하며 견고성도 없고 입력 검증도 없습니다.

버그는 주의해서 만드세요(조심하세요

그리고 제 변수 이름과 메소드 이름에 대해 불평하지 마세요. 초등학교 때부터 병음을 배우지 않았다면, 당신은 절대 이해하지 못할 것입니다: )

블라인드 테스트 프로젝트로 이 일을 시작했기 때문입니다.

번역하기 너무 귀찮아서

대소문자 변환하는 방법이 내장되어 있습니다

Console.WriteLine(s.ToUpper());//转换成大写
Console.WriteLine(s.ToLower());//转换成小写

역방향 문자 출력 문자열

public static void fanxiang(string s)
  {
   char[] arrey = s.ToCharArray();
   StringBuilder s1 = new StringBuilder("");
   for (int i = arrey.Length - 1; i >= 0; i--)
   {
    s1.Append(Convert.ToString(arrey[i]));
   }
   Console.WriteLine("反向字符串为{0}",s1);
  }

특정 짧은 문자열의 개수 보기

public static void pipei(string s)
  {
   int count = 0;
   int i;
   Console.WriteLine("请输入短字符串");
   string s2 = Console.ReadLine();
   while ((i=s.IndexOf(s2)) >= 0)
   {
    count++;
    s = s.Substring(i + s2.Length);
   }
   Console.WriteLine("字符串中出现了{0}次{1}", count, s2);
  }

정규 매칭

배우지 않음 정규수업에 대해 많이 배웠고, 온라인에서 읽은 내용도 대부분 정규수업보다는 정규수업에 대한 이야기입니다. 하루 정도 이 글을 쓰느라 꼼짝 못했는데, 아직도 버그가 있습니다.

일치하는 결과가 없거나, 일치하는 내용이 비어 있을 때? 여러 줄 바꿈이 발생합니다. 그 당시 버그를 어떻게 테스트했는지도 잊어버렸습니다.

아이디어가 있는 정원사라면 누구나 아이디어를 공유할 수 있습니다.

public static void zzpipei(string s)
  {
   Console.WriteLine("请输入正则表达式");
   string zz = Console.ReadLine();
   Regex re = new Regex(zz);
   string s2 = "";
   if (re.IsMatch(s))
   {
    Console.WriteLine("匹配成功");
    MatchCollection mc = re.Matches(s);
    foreach (Match ma in mc)
    {
     s2 += ma.Value;
     s2 += ("\r\n");
    }
    Console.WriteLine("一行为一个匹配结果");
    Console.WriteLine(s2);
   }
   else
   { Console.WriteLine("无匹配结果"); }
  }

base64 암호화

사용된 방법도 내장되어 있습니다. 한자 암호화는 일부 웹사이트의 암호화와 다릅니다.

 public static void basejiami(string s)
  {
   byte[] bytes = Encoding.Default.GetBytes(s);
    Console.WriteLine("字符串base64加密为{0}", Convert.ToBase64String(bytes));
  }

base64 복호화

 public static void basejiemi(string s)
  {
   byte[] bytes = Convert.FromBase64String(s);
    Console.WriteLine("字符串base64解密为{0}", Encoding.Default.GetString(bytes));
  }

ROT13 암호화 및 복호화

ROT13은 간단한 대체 암호입니다. ROT13은 과거 고대 로마에서 개발된 카이사르 암호의 변형이기도 합니다.

ROT13은 13비트를 뒤로 대체합니다. 즉, A는 N으로, B는 O로 변환됩니다.

시저 암호는 3자리 숫자를 거꾸로 바꾸는 것입니다. 이 방법은 Caesar 암호를 해독하기 위해 수정될 수 있으며 대소문자를 구분합니다.

ROT13은 그 자체의 역입니다. 즉, ROT13을 복원하려면 동일한 암호화 알고리즘을 적용하기만 하면 암호화 및 복호화에 동일한 작업을 사용할 수 있습니다.

이 알고리즘은 실제 암호화 보안을 제공하지 않으므로 보안이 필요한 목적으로 사용해서는 안됩니다. 이는 약한 암호화의 예로 자주 인용됩니다.

public static void rotjm(string s)
  {
   string jmzf = "";//解密加密后的字符串
   char[] arrey = s.ToCharArray();
   Console.WriteLine("字符串长度为{0}", arrey.Length);
   for (int i = 0; i < arrey.Length; i++)
   {
    int zfcode = (int)arrey[i];
    if (zfcode >= 97 && zfcode <= 109)
     zfcode = zfcode + 13;
    else if (zfcode >= 110 && zfcode <= 122)
     zfcode = zfcode - 13;
    else if (zfcode >= 65 && zfcode <= 77)
     zfcode = zfcode + 13;
    else if (zfcode >= 78 && zfcode <= 90)
     zfcode = zfcode - 13;
    jmzf = jmzf + (char)zfcode;
   }
   Console.WriteLine("结果为{0}", jmzf);
  }

문자열 바꾸기

public static void thzf(string s)
  {
   Console.WriteLine("请输入想要被替换的字符串");
   string str1 = Console.ReadLine();
   Console.WriteLine("请输入想要替换成的字符串");
   string str2 = Console.ReadLine();
   Console.WriteLine(s.Replace(str1, str2));
  }

32비트 MD5 암호화

public static void md5jm(string s)
  {
   MD5 md5 = new MD5CryptoServiceProvider();
   //将字符编码为字节序列
   byte[] data = System.Text.Encoding.Default.GetBytes(s);
   byte[] md5data = md5.ComputeHash(data);
   md5.Clear();
   //遍历加密数组,加密字节,该方法为32位加密
   string str = "";
   for (int i = 0; i < md5data.Length; i++)
   {
    str += md5data[i].ToString("x").PadLeft(2, &#39;0&#39;);
   }
   Console.WriteLine("加密结果为{0}",str);
  }

내 프로그램, .NET Framework 4.0을 사용합니다.

위 내용은 C# 문자열 처리 가젯에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.