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


    推荐阅读

      linux命令基础代码?

      linux命令基础代码?,基础,系统,管理,工作,代码,网络,单位,信息,数据,命令,lin

      linux打开代码命令行?

      linux打开代码命令行?,系统,首页,工具,终端,代码,密码,情况,命令,快捷键,窗

      linux克隆代码命令?

      linux克隆代码命令?,系统,代码,文件,命令,目录,源文件,文件夹,路径,目标,表

      linux用命令做什么?

      linux用命令做什么?,系统,基础,工作,管理,标准,命令,第一,电脑,设备,适当,lin

      linux命令行调试代码?

      linux命令行调试代码?,环境,代码,信息,平台,程序,编辑,版本,步骤,体系结构,

      linux编译源代码命令?

      linux编译源代码命令?,工具,代码,百度,最新,环境,项目,系统,电脑,密码,内核,l

      linux命令提交代码?

      linux命令提交代码?,工作,系统,地址,代码,命令,数据,信息,目录,标准,发行,求

      linux代码同步命令?

      linux代码同步命令?,时间,服务,系统,地址,代码,网络,通信,图片,风险,管理,lin

      linux命令错误代码?

      linux命令错误代码?,系统,密码,电脑,网络,手机,网址,软件,代码,设备,老板,Lin

      linux同步代码命令?

      linux同步代码命令?,时间,系统,通信,网络,标准,图片,服务,代码,线程,单位,Lin

      linux拉取代码命令?

      linux拉取代码命令?,代码,工作,地址,命令,数据,系统,单位,生产,软件,目录,lin

      linux代码对齐命令?

      linux代码对齐命令?,系统,地址,标准,信息,对比,名称,代码,命令,文件,工作,lin

      linux命令运行代码?

      linux命令运行代码?,代码,单位,系统,环境,连续,保险,工具,命令,文件,音乐,Lin

      搭建linux命令行代码?

      搭建linux命令行代码?,系统,软件,工作,名字,服务,代码,地址,环境,管理,密码,l

      linux查看命令代码?

      linux查看命令代码?,系统,信息,代码,名称,命令,设备,数字,第一,软件,管理,在L

      linux删除代码命令行?

      linux删除代码命令行?,系统,代码,命令,文件,不了,环境,档案,名称,目录,文件

      linux命令行代码实现?

      linux命令行代码实现?,标准,代码,管理,网络,地址,工作,命令,网上,环境,名称,

      linux桌面命令代码?

      linux桌面命令代码?,电脑,系统,密码,环境,代码,基础,地址,服务,网上,通讯,lin

      c代码执行linux命令?

      c代码执行linux命令?,系统,工作,标准,情况,代码,环境,设备,命令,函数,指令,li

      linux进入代码行命令?

      linux进入代码行命令?,系统,代码,设备,终端,环境,信息,第一,命令,窗口,模式,