эквивалентный код VB для кода Java - PullRequest
4 голосов
/ 16 сентября 2008

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

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

return Base64.encode(bytes);

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

Ответы [ 5 ]

5 голосов
/ 16 сентября 2008

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

Dim randomNumGen As RandomNumberGenerator = RNGCryptoServiceProvider.Create()
Dim randomBytes(20) As Byte
randomNumGen.GetBytes(randomBytes)
return Convert.ToBase64String(randomBytes)
3 голосов
/ 16 сентября 2008

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

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

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

  1. Генерация 20 случайных байтов
  2. Кодирование с использованием Base 64
1 голос
/ 16 сентября 2008

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

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

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

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

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

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

1 голос
/ 16 сентября 2008

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

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

0 голосов
/ 16 сентября 2008

В основном код выше:

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

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

...