{"id":19672005,"url":"https://github.com/michelp/randio","last_synced_at":"2025-07-29T11:33:01.710Z","repository":{"id":5230648,"uuid":"6407297","full_name":"michelp/randio","owner":"michelp","description":"Random number generator from rtl-sdr supported radio dongles","archived":false,"fork":false,"pushed_at":"2016-05-09T18:06:34.000Z","size":13,"stargazers_count":15,"open_issues_count":0,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-29T01:42:12.326Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Mtihc/RegionSelfService","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michelp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-10-26T16:57:57.000Z","updated_at":"2024-09-29T18:16:37.000Z","dependencies_parsed_at":"2022-09-19T02:00:50.675Z","dependency_job_id":null,"html_url":"https://github.com/michelp/randio","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/michelp/randio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelp%2Frandio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelp%2Frandio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelp%2Frandio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelp%2Frandio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michelp","download_url":"https://codeload.github.com/michelp/randio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelp%2Frandio/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267678448,"owners_count":24126333,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-11T17:10:36.443Z","updated_at":"2025-07-29T11:33:01.691Z","avatar_url":"https://github.com/michelp.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"randio\n======\n\n[DON'T USE THIS You should really go here https://github.com/pwarren/rtl-entropy](https://github.com/pwarren/rtl-entropy)\n\nRandom number generator from rtl-sdr supported radio dongles.\n\n    WARNING: I am not a cryptographer and have not formally verified\n    the quality of the random data that Randio produces.\n\nRandio data is based on data samples from random radio frequencies.\nRandio maintains an \"entropy pool\" of bytes that is continuously\nsha512 hashed with bytes read from the radio.  The pool size frequency\nrange, and number of radio samples per random frequency hop can be\nconfigured.\n\nPlacing your antenna in a high RF environment (outdoors in an urban\narea) or sampling a narrower, more active band of frequencies (like\nbroadcast television) may produce better data by introducing more\nradio \"noise\" into the pool.\n\nRandio provides a subclass of random.Random that acts like a normal\nPython random number generator.  There are two versions, a \"blocking\"\nversion that refreshes the pool with new entropy every time random\ndata is asked for (and thus is slow) and a \"non-blocking\" version\nwhere a background thread polls radio data at regular intervals and\nrefreshes the pool entropy.\n\nUsage\n=====\n\nrandio can be installed from Pypi with pip or easy_install:\n\n    pip install randio\n\nAnd tested interactively from the interpreter by running the module:\n\n    python -i -m 'randio'\n\nWhen run as a script, the module creates a default randio object that\nlooks for rtl-sdr dongle number 0.  To have it use another dongle, set\nthe 'RANDIO_DEV_INDEX' environment variable before running the script.\n\n    $ RANDIO_DEV_INDEX=1 python -i -m randio\n\nWhen the module imported, there is a couple of second delay while\nradio signals are sampled to provide a random number generator seed.\nBy default randio takes 1024 samples from 32 randomly chosen\nfrequencies between 64Mhz and 1100Mhz.  To sample a narrower (and\nperhaps \"noiser\") range of frequencies the RANDIO_FREQ_LOW and\nRANDIO_FREQ_HIGH environment variables can be set:\n\n    $ RANDIO_FREQ_LOW=470 RANDIO_FREQ_HIGH=692 python -i -m randio\n    Found Elonics E4000 tuner\n    \u003e\u003e\u003e randio.freq_range\n    (470000000.0, 692000000.0, 1000)\n\nThe number of samples, frequencies, and frequency range can all be\nadjusted with arguments to the Randio class constructor.  See the\nsource code for details.\n\nA randio object works like any other python Random subclass:\n\n    \u003e\u003e\u003e randio.random()\n    0.8497721577857263\n    \u003e\u003e\u003e \n\nRandio objects also provide a 'sha512' hash function that returns a\nhash object of the accumulated sample radio data.\n\n    \u003e\u003e\u003e randio.sha512().hexdigest()\n    '61bb7e4a1170f2fbdc170ffd8760b192e0d0f3631358c94a87606594571af1beb6507877d3b2838706fc692fdae4ff503393765941d2b44bc0bd7f9e27cf19dd'\n\nThe 'sha512' method always gets fresh sample data per call, so will\nallways take a few seconds to collect the samples.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichelp%2Frandio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichelp%2Frandio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichelp%2Frandio/lists"}