草庐IT

random_bytes

全部标签

java - 如何在 Java 中以字符串形式从 IP 获取 byte[] 表示

假设我将IP存储在一个字符串中:字符串ip="192.168.2.1"并且我想获得包含四个整数的字节数组。我该怎么做?谢谢! 最佳答案 像这样:InetAddressip=InetAddress.getByName("192.168.2.1");byte[]bytes=ip.getAddress();for(byteb:bytes){System.out.println(b&0xFF);} 关于java-如何在Java中以字符串形式从IP获取byte[]表示,我们在StackOverfl

java - Java 中 Math.random() 的随机数

为了生成随机数,我使用了以下公式:(int)(Math.random()*max)+min我在Google上找到的公式似乎总是:(int)(Math.random()*(max-min)+min)哪个是对的?据我所知,我的公式从未得到超出我范围的数字 最佳答案 您的公式生成介于最小值和最小值+最大值之间的数字。Google发现的生成的数字介于最小值和最大值之间。Google赢了! 关于java-Java中Math.random()的随机数,我们在StackOverflow上找到一个类似的

java - 在不转换为 byte[] 的情况下获取带字节编码的 String 大小

我有一种情况需要知道String/encoding对的大小(以字节为单位),但不能使用getBytes()方法,因为1)String非常大,在byte[]数组中复制String会使用大量内存,但更重要的是2)getBytes()根据String的长度*每个字符的最大可能字节数分配一个byte[]数组。因此,如果我有一个包含1.5B个字符和UTF-16编码的String,getBytes()将尝试分配一个3GB的数组并失败,因为数组被限制为2^32-X字节(X是特定于Java版本的)。那么-有什么方法可以直接从String对象计算String/encoding对的字节大小吗?更新:这是j

java - 在 Java 中将 long[64] 转换为 byte[512]?

我正在将一个流程移植到Java。已经有C#和C++的工作版本。我在C#中有一个部分,我执行Marshal.Copy(...)将64ulongs转换为512字节,而在C++中的那一行我使用memmove(...)来做同样的事情。Java中有什么可以实现相同的结果?我需要相同顺序的相同二进制信息,就像bytes而不是longs。编辑:我移植到Java的原因是为了利用Java自然具有的可移植性。我不想使用native代码。还有一点。由于Java不包含无符号值,因此我需要稍微更改一下我的请求。我想从64个long(C#和C++中的ulong)中的每一个中获得8个无符号字节值,以便稍后在数组的索

java - 在 Java 中仅使用/dev/random

我有一个HRNG在DebianWheezy中提供/dev/random。它很快,所以阻塞不会成为问题。现在,在我的Java代码中,我想确保我使用/dev/random中的熵并且只使用那个熵。我没有兴趣使用/dev/urandom之外的任何东西。我想强制Java的SecureRandom只从/dev/random获取熵。据我了解目前的实现,它在调用getBytes()时使用/dev/urandom,但在调用generateSeed()时使用/dev/random。我不明白为什么。据我了解,从/dev/urandom读取的唯一原因是您更喜欢速度而不是安全。我想要最高质量的熵。/dev/ur

java - 为什么将 Random 与硬编码种子一起使用总是会产生相同的结果?

这个问题在这里已经有了答案:Whydoesthiscodeusingrandomstringsprint"helloworld"?(15个答案)关闭9年前。以下Java中的简单程序使用java.util.Random类,因此它始终显示“helloworld”。代码片段如下所示。packagenomain;importjava.util.Random;finalpublicclassJ{publicstaticStringrandomString(intseed){Randomrand=newRandom(seed);StringBuildersb=newStringBuilder();

java - MalformedByteSequenceException : Invalid byte 2 of 2-byte UTF-8 sequence

我有一个包含阿拉伯字符的xml文件。当我尝试解析一个文件时,出现异常,MalformedByteSequenceException:2字节UTF-8序列的无效字节2。我使用POIDOM解析文档。日志是,2012-03-1911:30:00,433[ERROR](com.infomindz.remitglobe.bll.remittance.BlackListBean)-Errorcom.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:Invalidbyte2of2-byteUTF-8sequen

java - Java 中的 Base64 字符串转 byte[]

这个问题在这里已经有了答案:Base64:java.lang.IllegalArgumentException:Illegalcharacter(6个答案)关闭5年前。我正在尝试将base64字符串转换为字节数组,但它抛出以下错误java.lang.IllegalArgumentException:Illegalbase64character3a我尝试了以下选项userimageisbase64stringbyte[]img1=org.apache.commons.codec.binary.Base64.decodeBase64(userimage);`/*byte[]decodedS

java - 为什么 new String(bytes, enc).getBytes(enc) 不返回原始字节数组?

我做了以下“模拟”:byte[]b=newbyte[256];for(inti=0;i对于cp1251这仅输出一个错误字节-在位置25。对于KOI8-R-一切正常。对于cp1252-4或5个差异。这是什么原因,如何克服?我知道用任何编码将字节数组表示为字符串都是错误的,但这是支付提供商协议(protocol)的要求,所以我别无选择。更新:在ISO-8859-1中表示它有效,我将在byte[]部分使用它,并且cp1251对于文本部分,所以这个问题只是出于好奇 最佳答案 目标集中不支持某些“字节”——它们被替换为?字符。当您转换回来时,

java - String.getBytes() 和 Bytes.toBytes(String data) 的区别

我正在编写Hadoop/HBase作业。我需要将JavaString转换为字节数组。Java的String.getBytes()和Hadoop的Bytes.toBytes()有区别吗? 最佳答案 根据itsdocumentationBytes.toBytes()使用UTF-8将参数转换为byte[]。String.getBytes()(withoutarguments)将使用平台默认编码将String转换为byte[]。该编码可能因操作系统和用户设置而异。通常应避免使用该方法。你可以使用String.getBytes(String)