Вопрос

Кто-нибудь может сказать мне, что именно делает этот Java-код?

SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
byte[] bytes = new byte[20];
synchronized (random)
{
    random.nextBytes(bytes);
}

return Base64.encode(bytes);

Пошаговое объяснение будет полезно, чтобы я мог воссоздать этот код в VB.Спасибо

Это было полезно?

Решение

Используя фрагменты кода, вы можете получить что-то вроде этого

Dim randomNumGen As RandomNumberGenerator = RNGCryptoServiceProvider.Create()
Dim randomBytes(20) As Byte
randomNumGen.GetBytes(randomBytes)
return Convert.ToBase64String(randomBytes)

Другие советы

При этом создается генератор случайных чисел (SecureRandom).Затем он создает массив байтов (byte[] байт) длиной 20 байт и заполняет его случайными данными.

Затем это кодируется с использованием BASE64 и возвращается.

Итак, в двух словах,

  1. Сгенерировать 20 случайных байт
  2. Кодирование с использованием базы 64

Он создает генератор случайных чисел на основе SHA1 (RNG), затем Base64 кодирует следующие 20 байт, возвращаемых RNG.

Однако я не могу сказать вам, почему он это делает, без какого-либо дополнительного контекста :-).

Этот код получает криптографически надежное случайное число длиной 20 байт, затем Base64 кодирует его.Здесь много кода библиотеки Java, так что ваше предположение так же хорошо, как и мое, о том, как это сделать в VB.

SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
byte[] bytes = new byte[20];
synchronized (random) { random.nextBytes(bytes); }
return Base64.encode(bytes);

В первой строке создается экземпляр Безопасный случай класс.Этот класс предоставляет криптографически надежный генератор псевдослучайных чисел.

Во второй строке объявляется массив байтов длиной 20.

Третья строка считывает следующие 20 случайных байт в массив, созданный в строке 2.Он синхронизируется с объектом SecureRandom, чтобы не возникало конфликтов со стороны других потоков, которые могут использовать этот объект.Из этого кода не ясно, зачем вам нужно это делать.

Четвертая строка Base64 кодирует результирующий массив байтов.Вероятно, это предназначено для передачи, хранения или отображения в известном формате.

В основном приведенный выше код:

  1. Создает безопасный генератор случайных чисел (для VB смотрите ссылку ниже)
  2. Заполняет bytearray длиной 20 случайными байтами
  3. Base64 кодирует результат (вероятно, вы можете использовать Convert .ToBase64String(...) )

Вы должны найти здесь какую-нибудь помощь:http://msdn.microsoft.com/en-us/library/system.security.cryptography.rngcryptoserviceprovider.aspx

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top