보통 임의의 문자열을 생성할때, Guid.NewGuid().ToString("N") 를 사용하게 되는데요.
84bc1c2db56140b39e35b040e6856457 이런 형태로 출력이 되곤하죠.
더 무작위적이고 읽기 쉽고 , 짧은 문자열을 위해 더 나은 대안을 찾을 수 있는데요.
system.Security.Cryptography.RandomNumberGenerator.Create 를 사용하는 것입니다.
이를 사용하면 보안과 관련된 모든 것에 대해 매우 유용할 것입니다.
public class RandomGenerator
{
private const string AllowableCharacters = "abcdefghijklmnopqrstuvwxyz0123456789";
public static string GenerateString(int length)
{
var bytes = new byte[length];
using (var random = RandomNumberGenerator.Create())
{
random.GetBytes(bytes);
}
return new string(bytes.Select(x => AllowableCharacters[x % AllowableCharacters.Length]).ToArray());
}
}
첫댓글 잘봤습니다. 감사합니다.
재밌는 기능들이 많네요.
이 글을 17년에 봤는데... 난 아직도 Guid.NewGuid().ToString("N") 이걸 쓰네요... ㅎㅎㅎ