Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

540
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!