`
huangyuanmu
  • 浏览: 289825 次
  • 性别: Icon_minigender_1
  • 来自: 龙城
社区版块
存档分类
最新评论

jdk1.4与jdk1.5关于随机数生成的区别

阅读更多

最近在搞一个图片验证码的东东,4位随机数字,采用java的Radom类来生成随机数,在tomcat6下,运行正常。但是,到了tomcat5下却始终是四个相同的数字。分析了下,应该和tomcat没有关系,应该还是jdk的区别,tomcat6下使用的是jdk5.0,而tomcat5下使用的是jdk1.4。

 

有如下测试程序可以直观的展现一个问题:

 

       private static int testRandom() {
		Random r = new Random();
		int i; // 生成的随机数
		i = Math.abs(r.nextInt(9));
		return i;
	}

	public static void main(String[] args) {
		int count = 0; // 生成的密码的长度
		StringBuffer pwd = new StringBuffer("");
		while (count < 100) {
			pwd.append(testRandom());
			count++;
		}
		System.out.println(pwd.toString());
	}

 

jre5.0下运行,结果为:

162862684487134624170311078722232312330250575038456227172745210654510831674820177

5053578143000401231

 

jre1.4下运行,结果为:

666666666666666666666666666666666666666666666666666666666666666666666666666666666

6666666666666666666

 

可见,该段测试代码在jre1.5中,达到了生成随机数的目的,而在1.4中,没有实现。为什么呢,看来得研究下这段代码的关键之处,那就是Random r = new Random();这段代码在5.0和1.4中意义有何区别。

 

分享到:
评论

相关推荐

    jdk1.4 源码,初学必备哦~

    "java.util"包提供了集合、日期时间、随机数生成等功能;"java.io"包处理输入输出操作,如FileInputStream和OutputStream。 "launcher"目录通常包含Java应用程序的启动器,如`javaw.exe`和`java.exe`,它们负责加载...

    jdk1.4生成guid

    标题“jdk1.4生成guid”指的是在Java 1.4版本中生成全局唯一标识符(GUID)的技术。GUID,全称Globally Unique Identifier,是一种确保在全球范围内唯一标识对象的128位数字。在Java中,通常使用`java.util.UUID`类...

    Java中不重复随机数的生成与分析.pdf

    调用该对象的不同方法可以生成各种不同类型的随机数,JDK 文档中关于 Random 类的构造方法叙述如下: public Random() 创建一个新的随机数生成器。此构造方法为随机数生成器的种子设置某个值,该值与此构造方法的...

    随机数生成器

    需要安装JDK才能运行,因为这个是jar文件,安装后双击jar文件便可以运行了。这是生成 用户自定义区间内 自定义任意个数 不重复的随机数

    JDK api中文版(1.6 和1.7)

    `java.util`包则包含了集合框架、日期时间、随机数生成器等通用工具类。 2. **网络编程**:`java.net`包提供了网络通信的功能,如`Socket`和`ServerSocket`,用于实现客户端-服务器模型的通信。 3. **多线程**:`...

    bcprov-jdk15on bcprov-ext-jdk15on 下载

    标题中的"bcprov-jdk15on"和"bcprov-ext-jdk15on"是两个与Java相关的库,它们是Bouncy Castle项目的一部分。Bouncy Castle是一个著名的开源加密库,广泛用于Java和.NET平台上,提供了大量的加密算法,如RSA、AES、...

    bcprov-jdk15on-1.47.jar Java 加密 解密 jar包

    5. **随机数生成器**:Bouncy Castle提供了强大的随机数生成器,这对于加密安全性至关重要。 6. **ASN.1编码**:高级系统标记语言(ASN.1)是用于结构化数据编码的标准,这个库提供了asn.1编解码功能。 7. **密钥和...

    jdk1.8 64位官方正式版 jdk-8u45-linux-x64.tar.gz

    此外,`ThreadLocalRandom`类的引入提高了多线程环境下随机数生成的性能和安全性。 在日期和时间API上,Java 8用`java.time`包替换了过时的`java.util.Date`和`java.util.Calendar`,提供了更直观、更易用的API,如...

    bcprov-jdk15-135.jar和ojdbc6.jar

    Bouncy Castle库不仅包含了基本的加密和解密功能,还提供了数字签名、消息认证码(MAC)、随机数生成器等安全相关的服务。在开发需要加密和安全通信的应用时,如HTTPS、SSL/TLS协议、PGP、S/MIME等,开发者经常会...

    bouncycastle jar包,版本: jdk15to18-1.73

    这个jar文件是Bouncy Castle的基础提供者包,包含了广泛的密码学算法实现,包括公钥和私钥算法、消息摘要函数、哈希函数、随机数生成器等。它扩展了Java的标准加密包JSSE(Java Secure Socket Extension)和JCE...

    bcprov-jdk15on-1.50.jar

    4. **随机数生成器(RNG)**:为安全的密钥生成和其他随机需求提供高质量的随机数。 5. **PKCS#7/CMS**:一种用于封装和签名数据的标准。 6. **X.509证书处理**:读取、创建和操作数字证书。 7. **OpenSSL接口**:...

    jdk与javauuidgenerator生成uuid

    其中,`randomUUID()`是最常用的,它基于当前时间戳和随机数生成一个UUID,通常形式为“-”分隔的32个十六进制数字。例如: ```java UUID uuid = UUID.randomUUID(); System.out.println(uuid.toString()); ``` `...

    jdk17下载与安装教程.docx

    JEP 356:增强型伪随机数生成器:引入了新的随机数生成器接口和算法,提高了随机数生成的质量和性能。 JEP 382:新的macOS渲染管线:为macOS平台提供了更高效的图形渲染能力,提升了Java应用程序在macOS上的性能。 ...

    jdk-18_macos-x64_bin, Mac jdk-18版本。

    4. **线程本地随机数生成器**:新增`ThreadLocalRandom`类,提供线程安全的高效随机数生成,减少了多线程环境下的竞争条件。 5. **增强的`ProcessHandle` API**:扩展了对进程信息的访问,包括进程的启动时间、用户...

    bcprov-jdk15on-1.60.zip

    6. **随机数生成器**:提供安全的随机数生成器,对于加密过程至关重要。 7. **ASN.1编码和解码**:支持ASN.1(Abstract Syntax Notation One)编码规则,这是在X.509证书和其他安全协议中广泛使用的编码格式。 在...

    bcprov-jdk15on-1.47运行包和源码包

    这个库提供了广泛的支持,涵盖了众多的加密算法,如对称加密、非对称加密、哈希函数、消息认证码(MAC)、数字签名、密钥协议以及随机数生成等。标题"bcprov-jdk15on-1.47运行包和源码包"表明我们有两个文件,一个是...

    bcprov-jdk16-1.45.jar

    Bouncy Castle提供了不受这些限制的更强大的加密算法,包括对称加密、非对称加密、哈希函数、消息摘要算法、数字签名、随机数生成器等。此外,它还支持OpenSSL接口,使得Java应用可以无缝地与使用OpenSSL的系统进行...

    jdk1.8.0_131和JCE无限制权限策略文件

    2. **JCE**:Java Cryptography Extension提供了加密、密钥生成、密码套件选择和安全随机数生成等功能,对于处理敏感数据的Java应用至关重要。 3. **Kerberos**:Kerberos协议是一种基于密钥分发中心(KDC)的网络...

    jdk文档中文版

    例如,`java.util`包包含了集合框架、日期和时间处理、随机数生成等功能;`java.io`包提供了输入/输出流,用于数据的读写。 5. **异常处理**: Java中的异常处理机制通过`try-catch-finally`块来捕获和处理错误。...

Global site tag (gtag.js) - Google Analytics