C#에서 임의의 영숫자 문자열 생성
-
C#에서
Random
클래스를 사용하여 임의의 영숫자 문자열 생성 - C#에서 LINQ 메서드를 사용하여 임의의 영숫자 문자열 생성
-
C#에서
RNGCryptoServiceProvider
클래스를 사용하여 임의의 영숫자 문자열 생성
이 자습서에서는 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
문자열을 초기화했습니다. 길이가8
인Charsarr
문자 배열을 만들었습니다. 그런 다음Random
클래스random
의 인스턴스를 초기화했습니다. Charsarr
배열을 반복하고 매번Charsarr
의characters
문자열에서 무작위 색인에 문자를 저장했습니다. 그런 다음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 자의 안전한 임의의 영숫자 문자열을 생성했습니다. 이 방법은 이전 두 방법보다 상대적으로 안전하고 예측할 수 없기 때문에 임의의 암호를 생성하려는 경우에 권장됩니다.
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