Pergunta

Alguém pode me dizer o que exatamente esse código Java faz?

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

return Base64.encode(bytes);

A explicação passo a passo será útil para que eu possa recriar este código em VB.Obrigado

Foi útil?

Solução

Usando trechos de código você pode chegar a algo assim

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

Outras dicas

Isso cria um gerador de números aleatórios (SecureRandom).Em seguida, ele cria uma matriz de bytes (byte[] bytes), com comprimento de 20 bytes, e a preenche com dados aleatórios.

Isso é então codificado usando BASE64 e retornado.

Então, em poucas palavras,

  1. Gere 20 bytes aleatórios
  2. Codificar usando Base 64

Ele cria um gerador de números aleatórios (RNG) baseado em SHA1 e, em seguida, Base64 codifica os próximos 20 bytes retornados pelo RNG.

Não posso dizer por que isso acontece sem mais contexto :-).

Este código obtém um número aleatório criptograficamente forte com 20 bytes de comprimento e, em seguida, Base64 o codifica.Há muito código de biblioteca Java aqui, então seu palpite é tão bom quanto o meu sobre como fazê-lo em VB.

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

A primeira linha cria uma instância do SeguroRandom aula.Esta classe fornece um gerador de números pseudo-aleatórios criptograficamente forte.

A segunda linha declara uma matriz de bytes de comprimento 20.

A terceira linha lê os próximos 20 bytes aleatórios no array criado na linha 2.Ele sincroniza no objeto SecureRandom para que não haja conflitos de outros threads que possam estar usando o objeto.Não está claro neste código por que você precisa fazer isso.

A quarta linha Base64 codifica a matriz de bytes resultante.Provavelmente é para transmissão, armazenamento ou exibição em um formato conhecido.

Basicamente o código acima:

  1. Cria um gerador de números aleatórios seguro (para VB, veja o link abaixo)
  2. Preenche um bytearray de comprimento 20 com bytes aleatórios
  3. Base64 codifica o resultado (provavelmente você pode usar Convert.ToBase64String(...))

Você deve encontrar alguma ajuda aqui:http://msdn.microsoft.com/en-us/library/system.security.cryptography.rngcryptoserviceprovider.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top