RandomGenerator.cs 671 B

12345678910111213141516171819202122232425262728
  1. using System;
  2. using System.Security.Cryptography;
  3. namespace WingPaymentService.Common.WeChat
  4. {
  5. public class RandomGenerator
  6. {
  7. readonly RandomNumberGenerator _csp;
  8. public RandomGenerator()
  9. {
  10. _csp = RandomNumberGenerator.Create();
  11. }
  12. public uint GetRandomUInt()
  13. {
  14. var randomBytes = GenerateRandomBytes(sizeof(uint));
  15. return BitConverter.ToUInt32(randomBytes, 0);
  16. }
  17. private byte[] GenerateRandomBytes(int bytesNumber)
  18. {
  19. byte[] buffer = new byte[bytesNumber];
  20. _csp.GetBytes(buffer);
  21. return buffer;
  22. }
  23. }
  24. }