C#을 사용하여 원하는 길이의 임의의 16 진수를 어떻게 만들 수 있습니까? 그건 당신이 길이를 제어 얼마나 그래서C#에서 무작위로 생성 된 16 진수
답변
static Random random = new Random();
public static string GetRandomHexNumber(int digits)
{
byte[] buffer = new byte[digits/2];
random.NextBytes(buffer);
string result = String.Concat(buffer.Select(x => x.ToString("X2")).ToArray());
if (digits % 2 == 0)
return result;
return result + random.Next(16).ToString("X");
}
Random random = new Random();
int num = random.Next();
string hexString = num.ToString("X");
random.Next는(), 당신은 최소 및 최대 값을 지정할 수 있습니다 인수를.
얼마나 무작위인지에 따라 다르지만 여기에 3 가지 대안이 있습니다. 1) 저는 보통 Guid.NewGuid를 사용하고 그 중 일부를 선택합니다.
2) System.Random (다른 응답 참조)은 '랜덤'을 원하는 경우에 적합합니다.
3) System.Security.Cryptography.RNGCryptoServiceProvider
GUID를 잘라내는 것은 나에게 진짜 나쁜 생각. 그들은 유일하게 전체적으로 취한 것입니다. GUID의 많은 비트는 확실히 무작위로 적합하지 않습니다. – spender
@spender가 정확합니다. 예를 들어 많은 GUID에 해당 GUID를 생성하는 PC의 MAC 주소가 들어 있습니다. –
예, MAC 주소 기반 guid는 잠재적 인 보안 문제로 간주되어 2000 년에 은퇴했습니다. 이제 GUID는 난수 생성기 (122 비트 랜덤, 6 비트 비 랜덤)에 의해 생성됩니다. 어느 쪽이든, 32 비트 (또는 그 이상)의 guid 조각을 사용하면 System.Random보다 더 많은 난수가 생깁니다. 이전 버전의 guid를 원한다면 하위 호환성을 위해 추가 된 UuidCreateSequential을 호출하지 않는 이상 그렇습니다.하지만 다른 이야기입니다. – KristoferA
는 여기에 256 비트 16 진수 문자열을 반환 하나입니다 (8 * 8 = 256) :
private static string RandomHexString()
{
// 64 character precision or 256-bits
Random rdm = new Random();
string hexValue = string.Empty;
int num;
for (int i = 0; i < 8; i++)
{
num = rdm.Next(0, int.MaxValue);
hexValue += num.ToString("X8");
}
return hexValue;
}
- 1. C에서 10 진수 값을 16 진수 문자열로 수동 변환하는 방법?
- 2. 16 진수 문자열을 PHP에 저장
- 3. C++ 16 진수 형식
- 4. 16 진수 값 읽기 (C)
- 5. 장치에 16 진수 데이터 보내기 (NSString을 16 진수 데이터로 변환)
- 6. 16 진수 값을 문자열에서 16 진수 코드로 변환
- 7. 고정 된 16 진수 편집기를 만들려면 어떻게해야합니까?
- 8. 16 진수 숫자 패드
- 9. 16 진수 64 부호로
- 10. 증가의 16 진수 문자열
- 11. 16 진수 및 확률
- 12. 변환 16 진수
- 13. 문자열의 16 진수 문자
- 14. 16 진수 NSString을 char []
- 15. 16 진수 표시
- 16. 16 진수 값을 자바에게
- 17. .NET에서 16 진수 편집
- 18. 색상 16 진수 계산
- 19. 7 세그먼트의 16 진수
- 20. 16 진수 쌍을 16 진수로 단축
- 21. C에서 부호없는 문자 배열을 16 진수 문자열로 변환하는 방법
- 22. 어떻게 목표 C에서 파일을이 16 진수 표기법으로 변환합니까?
- 23. 부호가있는 16 진수 값 범위
- 24. 16 진수 문자열 변환 아스키 문자열
- 25. 16 진수 홍수 퍼즐을 만드는 알고리즘
- 26. 16 진수 바이러스 서명 데이터베이스
- 27. SQL에서 16 진수 값 선택
- 28. ASP.NET 암호화 16 진수 문자
- 29. 16 진수 0x0001 대 0x00000001
- 30. 16 진수 덤프 메모리 위치에서
그것은 일 것이다 단지 '의 경우 길이 <= 8 '은'int.MaxValue'가 8 자리 16 진수로 맞습니다. –
만약 그가 원하는 길이의 16 진수 문자열을 원한다면 16 진수 길이 'x'와 길이가 'x'인 최소 숫자를 계산하는 코드가 필요합니다. – colithium
예. 나는 그것을 의도적으로 버렸지 만, 당신은 기본적으로 0xF에서 변환을해야할까요? ('내 정규식을 스캔하면) 원하는 길이에 맞는 정수를 찾으십시오. – womp