Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

541
Visualizações
RandomNumberGenerator GetInt32 no definido

Tengo que cambiar la generación de números aleatorios en varios lugares en el código fuente en el que estoy trabajando, para usar la clase RandomNumberGenerator en lugar de la clase Random por razones de seguridad.

Después de mirar los documentos de ms , pensé que tenía que usar el método Create() para crear una instancia de RandomNumberGenerator. Todo está bien, podría usar la función GetBytes() sin ningún problema, pero parece que no puedo usar GetInt32() que se usa para generar entradas. Primero intenté llamarlo desde la instancia, luego vi en la documentación que es una función estática, así que intenté llamarlo así RandomNumberGenerator.GetInt32(256) pero no contiene una definición, el único los métodos que intellisense me sugiere son Create, Equals y ReferenceEquals y estoy bastante confundido en cuanto a por qué.

Tengo el espacio de nombres System.Security.Cryptography incluido.

Intenté buscar en Google para ver implementaciones, o si alguien más tenía la misma pregunta, pero no pude encontrar nada relacionado.

EDITAR: estamos usando .net framework 4.8, así que he estado mirando la documentación incorrecta y esta debería ser la correcta . Este no contiene una definición para GetInt32 ni nada por el estilo, así que ahora no estoy seguro de qué debo usar para generar números enteros aleatorios de forma segura.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Dado que está trabajando en una versión de .NET Framework que no es compatible con el método estático RandomNumberGenerator.GetInt32() , una manera fácil de obtener un número entero sería obtener algunos bytes aleatorios y usar BitConverter para convertirlo en un número entero. :

 byte[] rngBytes = new byte[4]; // This could be replaced by your instance of RandomNumberGenerator RandomNumberGenerator.Create().GetBytes(rngBytes); // Convert the bytes into an integer int myInt = BitConverter.ToInt32(rngBytes);

Nota: debe tener en cuenta que el entero dado myInt podría ser negativo dado que esto simplemente convertirá los bytes en el valor entero equivalente. Simplemente puede soltar el bit inicial antes de convertir o simplemente hacer myInt = 0 - myInt; para obtener un positivo.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda