Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JRandom

JRandom 是一个简单的 Java 随机库,不同于大部分随机库,它使用独特的技术确保安全性

它会尝试使用 CPURDRAND 指令获取随机数,如果不支持将会使用 SecureRandom

核心代码

get_rand_int:
    test rdi, rdi
    je fail
    rdrand eax
    jc success
fail:
    xor eax, eax
    ret
success:
    mov [rdi], eax
    mov eax, 1
    ret

本项目已发布在 Maven 中央仓库可直接引入

<dependency>
    <groupId>io.github.4ra1n</groupId>
    <artifactId>jrandom</artifactId>
    <version>0.0.2</version>
</dependency>

Java 层使用会很简单

JRandom random = new JRandom();
for (int i = 0; i < 10; i++) {
    System.out.println(random.randomString(10));
}

顺便支持了一些常见的 API

  • getInt
  • getInt(int start, int end)
  • randomString(int length)
  • randomBytes(int length)
  • randomEle(List list)
  • randomNumbers(int n)

目前支持 WindowsLinux64

About

Java Secure Random Lib | Java 安全随机库 | 使用汇编调用 CPU 的 RDRAND 指令后通过 JNI 提供给 Java 程序 | 支持 Windows 和 Linux

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages