C#에서 임의의 영숫자 문자열 생성

Muhammad Maisam Abbas 2024년2월16일
  1. C#에서Random클래스를 사용하여 임의의 영숫자 문자열 생성
  2. C#에서 LINQ 메서드를 사용하여 임의의 영숫자 문자열 생성
  3. C#에서RNGCryptoServiceProvider클래스를 사용하여 임의의 영숫자 문자열 생성
C#에서 임의의 영숫자 문자열 생성

이 자습서에서는 C#에서 임의의 영숫자 문자열을 생성하는 방법에 대해 설명합니다.

C#에서Random클래스를 사용하여 임의의 영숫자 문자열 생성

Random클래스는 C#에서 난수를 생성합니다. Random.Next()메소드는 임의의 정수 값을 생성합니다. 모든 영숫자를 포함하는 상수 문자열 변수를 선언하고Random.Next()메소드에 의해 생성 된 색인을 기반으로 문자열 변수에서 문자를 선택할 수 있습니다.

다음 코드 예제는 C#에서Random클래스를 사용하여 임의의 영숫자 문자열을 생성하는 방법을 보여줍니다.

using System;
using System.Linq;

namespace random_alphanumeric_strings {
  class Program {
    static void Main(string[] args) {
      var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
      var Charsarr = new char[8];
      var random = new Random();

      for (int i = 0; i < Charsarr.Length; i++) {
        Charsarr[i] = characters[random.Next(characters.Length)];
      }

      var resultString = new String(Charsarr);
      Console.WriteLine(resultString);
    }
  }
}

출력:

vL8M6BNr

C#의Random클래스를 사용하여 8 자 길이의 임의의 영숫자 문자열을 생성했습니다. 그런 다음 원하는 모든 영숫자를 포함하는characters문자열을 초기화했습니다. 길이가8Charsarr문자 배열을 만들었습니다. 그런 다음Random클래스random의 인스턴스를 초기화했습니다. Charsarr배열을 반복하고 매번Charsarrcharacters문자열에서 무작위 색인에 문자를 저장했습니다. 그런 다음Charsarr문자 배열을resultString문자열 변수로 변환하고 결과를 표시했습니다.

C#에서 LINQ 메서드를 사용하여 임의의 영숫자 문자열 생성

LINQ는 C#의 데이터 구조에 대한 쿼리 기능을 수행합니다. Random클래스와 함께 LINQ를 사용하여 이전 메서드의 성능을 향상시킬 수 있습니다. 다음 코드 예제는 C#에서 LINQ 메서드를 사용하여 임의의 영숫자 문자열을 생성하는 방법을 보여줍니다.

using System;
using System.Linq;

namespace random_alphanumeric_strings {
  class Program {
    private static Random random = new Random();
    public static string method2(int length) {
      const string characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
      return new string(
          Enumerable.Repeat(characters, length).Select(s => s[random.Next(s.Length)]).ToArray());
    }
    static void Main(string[] args) {
      string finalString = method2(8);
      Console.WriteLine(finalString);
    }
  }
}

출력:

SXUXK2P8

위 코드에서 C#의 LINQ 및Random클래스를 사용하여 임의의 영숫자 문자열을 만들었습니다. 이 방법은 위에서 설명한 방법보다 효율적입니다.

C#에서RNGCryptoServiceProvider클래스를 사용하여 임의의 영숫자 문자열 생성

위에서 설명한 방법은 실제로 무작위가 아니고 선형 패턴을 따르기 때문에 암호 생성에 권장되지 않습니다. 안전한 암호를 위해RNGCryptoServiceProvider클래스를 사용해야합니다. RNGCryptoServiceProvider클래스는 C#에서 암호화 난수를 생성합니다. RNGCryptoServiceProvider클래스의 GetBytes()메소드는 바이트 배열을 임의의 값으로 채 웁니다. Convert.ToBase64String()메소드와 함께GetBytes()메소드를 사용하여 채워진 바이트 배열에서 문자열을 가져올 수 있습니다. 다음 코드 예제는 C#에서RNGCryptoServiceProvider클래스를 사용하여 안전한 임의의 영숫자 문자열을 생성하는 방법을 보여줍니다.

using System;
using System.Linq;
using System.Security.Cryptography;

namespace random_alphanumeric_strings {
  class Program {
    static string method3(int length) {
      using (var crypto = new RNGCryptoServiceProvider()) {
        var bits = (length * 6);
        var byte_size = ((bits + 7) / 8);
        var bytesarray = new byte[byte_size];
        crypto.GetBytes(bytesarray);
        return Convert.ToBase64String(bytesarray);
      }
    }
    static void Main(string[] args) {
      string finalString = method3(8);
      Console.WriteLine(finalString);
    }
  }
}

출력:

JGc42Ug3

위 코드에서 C#의RNGCryptoServiceProvider클래스를 사용하여 8 자의 안전한 임의의 영숫자 문자열을 생성했습니다. 이 방법은 이전 두 방법보다 상대적으로 안전하고 예측할 수 없기 때문에 임의의 암호를 생성하려는 경우에 권장됩니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Csharp String