{"id":28248426,"url":"https://github.com/prokop-dev/fortune-teller","last_synced_at":"2025-06-29T09:03:01.124Z","repository":{"id":57731183,"uuid":"299008494","full_name":"prokop-dev/fortune-teller","owner":"prokop-dev","description":"Java Fortuna PRNG clean room implementation","archived":false,"fork":false,"pushed_at":"2023-03-05T21:19:38.000Z","size":530,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-29T09:02:51.617Z","etag":null,"topics":["fortuna","java","jca","prng","random-generation"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prokop-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-09-27T10:36:26.000Z","updated_at":"2025-04-28T07:10:28.000Z","dependencies_parsed_at":"2025-05-19T12:15:59.337Z","dependency_job_id":"5513141c-99f0-4bb8-89b5-00c1408699f5","html_url":"https://github.com/prokop-dev/fortune-teller","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/prokop-dev/fortune-teller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prokop-dev%2Ffortune-teller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prokop-dev%2Ffortune-teller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prokop-dev%2Ffortune-teller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prokop-dev%2Ffortune-teller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prokop-dev","download_url":"https://codeload.github.com/prokop-dev/fortune-teller/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prokop-dev%2Ffortune-teller/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262566830,"owners_count":23329680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fortuna","java","jca","prng","random-generation"],"created_at":"2025-05-19T12:15:53.839Z","updated_at":"2025-06-29T09:03:01.113Z","avatar_url":"https://github.com/prokop-dev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fortune-teller\nJava Fortuna PRNG clean room implementation.\nThis implementation is JCA compatible.\nThis allow to use Fortuna as secure random number generator for all Java applications.\n\n## Usage\n\nAdd Maven dependency\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003edev.prokop.crypto\u003c/groupId\u003e\n    \u003cartifactId\u003efortune-teller\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nRegister JCA provider.\n\n```java\nSecurity.addProvider(new FortunaJcaProvider());\n```\n\nRequest ```SecureRandom``` instance and generate some random numbers.\n\n```java\nfinal SecureRandom fortuna = SecureRandom.getInstance(\"Fortuna\");\n\nfortuna.generateSeed(22); // generates 22 random bytes\n\nfinal byte[] bytes = new byte[1024];\nfortuna.nextBytes(bytes); // fills byte array with 1 KiB of random data\n```\n\nThat's it.\n\n## Test it on your system\n\nDon't trust what you read here, please test it on your system before use. Your mileage can vary. You have been warned.\n\n```shell script\n$ wget https://repo1.maven.org/maven2/dev/prokop/crypto/fortune-teller/1.0.1/fortune-teller-1.0.1.jar\n\n$ java -cp fortune-teller-1.0.1.jar dev.prokop.crypto.fortuna.DieHarder | dieharder -g200 -a\n\n#=============================================================================#\n#            dieharder version 3.31.1 Copyright 2003 Robert G. Brown          #\n#=============================================================================#\n   rng_name    |rands/second|   Seed   |\nstdin_input_raw|  4.12e+06  |3855428203|\n#=============================================================================#\n        test_name   |ntup| tsamples |psamples|  p-value |Assessment\n#=============================================================================#\n   diehard_birthdays|   0|       100|     100|0.92706545|  PASSED\n      diehard_operm5|   0|   1000000|     100|0.89760746|  PASSED\n  diehard_rank_32x32|   0|     40000|     100|0.28649369|  PASSED\n    diehard_rank_6x8|   0|    100000|     100|0.83184980|  PASSED\n   diehard_bitstream|   0|   2097152|     100|0.67206395|  PASSED\n        diehard_opso|   0|   2097152|     100|0.58135346|  PASSED\n...\n```\n\nTry to generate some images:\n\n```shell script\njava -cp fortune-teller-1.0.1.jar dev.prokop.crypto.fortuna.DieHarder | rawtoppm -rgb 256 256 \u003e pixmap\ncat pixmap | pnmtopng \u003e random$(date +%Y%m%d%H%M%S).png\n```\n\n![Pretty dull, ha!](https://raw.githubusercontent.com/prokop-dev/fortune-teller/master/dieharder/random20201003134327.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprokop-dev%2Ffortune-teller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprokop-dev%2Ffortune-teller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprokop-dev%2Ffortune-teller/lists"}