byte bytes = new byte20;
synchronized random

"/>

关于VBA:Java代码的等效VB代码

关于VBA:Java代码的等效VB代码

equivalent vb code for a java code

谁能告诉我这段Java代码到底是做什么的?

1
2
3
4
5
6
7
8
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
byte[] bytes = new byte[20];
synchronized (random)
{
    random.nextBytes(bytes);
}

return Base64.encode(bytes);

分步说明将非常有用,这样我就可以在VB中重新创建此代码。谢谢


使用代码段,您可以得到如下内容

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

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

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

总而言之,

  • 产生20个随机字节
  • 使用Base 64编码

  • 此代码获取一个长度为20个字节的加密强随机数,然后Base64对其进行编码。这里有很多Java库代码,因此您的猜测与我在VB中的用法一样好。

    1
    2
    3
    4
    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对所得的字节数组进行编码。这可能用于以已知格式进行传输,存储或显示。


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

    我无法告诉您为什么这样做却没有更多的上下文信息:-)。


    基本上上面的代码:

  • 创建一个安全的随机数生成器(有关VB,请参见下面的链接)
  • 用随机字节填充长度为20的字节数组
  • Base64对结果进行编码(您可以使用Convert.ToBase64String(...))
  • 您应该在这里找到一些帮助:
    http://msdn.microsoft.com/zh-cn/library/system.security.cryptography.rngcryptoserviceprovider.aspx


    推荐阅读

      程式编辑快捷键|代码编辑快捷键

      程式编辑快捷键|代码编辑快捷键,,1. 代码编辑快捷键Option Explicit ‘强制对模块内所有变量进行声明(2) Option Base 1 ‘指定数组的第一

      vivo网络设置代码|vivo功能代码

      vivo网络设置代码|vivo功能代码,,1. vivo功能代码代码是*#558#1.首先在手机桌面里找到电话。2.在拨号键盘里输入*#558#3.这时候就进入了手

      确定java按钮响应事件的代码

      确定java按钮响应事件的代码,,* 阅读本文可以结合最后在java登录窗口界面下面是一个链接。 是定义的容器。 容器(CP =得到内容面板); / /

      excel窗口快捷键|excel代码窗口快捷键

      excel窗口快捷键|excel代码窗口快捷键,,excel代码窗口快捷键首先是新建并打开Excel表格,萊垍頭條按快捷键“Ctrl”+“F10”,可把窗口切换,再

      乐视股票代码

      乐视股票代码,股票,股票代码,乐视股票代码股票代码其实很容易理解,每一串代码代表的就是一只股票,用“平安银行”来举例说明吧,它的代码就是0

      asp中文图片验证码的实现代码

      asp中文图片验证码的实现代码,,这个代码是在别人的增加对汉字的基础功能,谢谢你,谢谢轻烟。 以前的图片验证代码很容易破解,所以在目前的基础

      计算机主板故障调试代码

      计算机主板故障调试代码,,核心提示:故障代码含义查找表的调试代码查找表来读:(注1),特殊代码00和FF等起始码有三种情况:一系列其他代码:00或FF,好

      乐视股票代码

      乐视股票代码,股票,股票代码,乐视股票代码股票代码其实很容易理解,每一串代码代表的就是一只股票,用“平安银行”来举例说明吧,它的代码就是0