java代码的等效vb代码

java代码的等效vb代码,java,vba,random,Java,Vba,Random,有人能告诉我这个Java代码到底做什么吗 SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); byte[] bytes = new byte[20]; synchronized (random) { random.nextBytes(bytes); } return Base64.encode(bytes); 一步一步的解释会很有用,这样我就可以在VB中重新创建这段代码。谢谢这将创建一个随机数生成器(SecureR

有人能告诉我这个Java代码到底做什么吗

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

return Base64.encode(bytes);


一步一步的解释会很有用,这样我就可以在VB中重新创建这段代码。谢谢

这将创建一个随机数生成器(SecureRandom)。然后创建一个长度为20字节的字节数组(byte[]bytes),并用随机数据填充该数组

然后使用BASE64对其进行编码并返回

因此,简而言之

  • 生成20个随机字节
  • 使用Base 64进行编码

  • 它创建一个基于SHA1的随机数生成器(RNG),然后Base64对RNG返回的下20个字节进行编码


    我不能告诉你为什么它会这样做,但是没有更多的上下文:-)。

    这段代码得到一个加密强随机数,长度为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对生成的字节数组进行编码。这可能用于传输、存储或以已知格式显示。

    使用代码片段,您可以获得类似的内容

    Dim randomNumGen As RandomNumberGenerator = RNGCryptoServiceProvider.Create() Dim randomBytes(20) As Byte randomNumGen.GetBytes(randomBytes) return Convert.ToBase64String(randomBytes) Dim randomNumGen As RandomNumberGenerator=RNGCryptoServiceProvider.Create() 将随机字节(20)设置为字节 randomNumGen.GetBytes(随机字节) 返回Convert.tobase64字符串(随机字节)
    基本上,上述代码:

  • 创建一个安全的随机数生成器(对于VB,请参见下面的链接)
  • 用随机字节填充长度为20的字节数组
  • Base64对结果进行编码(您可能可以使用Convert.tobase64字符串(…)
  • 您应该在这里找到一些帮助: