{"id":19607547,"url":"https://github.com/andreax79/python-securid","last_synced_at":"2025-08-22T22:52:21.613Z","repository":{"id":52855143,"uuid":"253621493","full_name":"andreax79/python-securid","owner":"andreax79","description":"python-securid is a Python library for generating RSA SecurID 128-bit compatible token codes.","archived":false,"fork":false,"pushed_at":"2025-05-05T05:19:58.000Z","size":634,"stargazers_count":26,"open_issues_count":1,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-07T15:03:33.997Z","etag":null,"topics":["python","securid"],"latest_commit_sha":null,"homepage":"","language":"Python","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/andreax79.png","metadata":{"files":{"readme":"README.rst","changelog":"changelog.txt","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-04-06T21:38:30.000Z","updated_at":"2025-04-03T11:17:36.000Z","dependencies_parsed_at":"2024-05-21T12:31:28.697Z","dependency_job_id":"2cc76e4d-d3e1-47d9-9a51-ac9e63dbdf40","html_url":"https://github.com/andreax79/python-securid","commit_stats":{"total_commits":30,"total_committers":4,"mean_commits":7.5,"dds":0.4666666666666667,"last_synced_commit":"ca333b8c4c9f73038761c6916b64d71cdd1811f7"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreax79%2Fpython-securid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreax79%2Fpython-securid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreax79%2Fpython-securid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreax79%2Fpython-securid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreax79","download_url":"https://codeload.github.com/andreax79/python-securid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252902615,"owners_count":21822261,"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":["python","securid"],"created_at":"2024-11-11T10:11:18.659Z","updated_at":"2025-05-07T15:04:10.758Z","avatar_url":"https://github.com/andreax79.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"python-securid - RSA SecurID 128-bit Token Library\n==================================================\n\npython-securid is a Python library for generating RSA SecurID 128-bit compatible token codes.\n(Python port of `stoken \u003chttps://github.com/cernekee/stoken\u003e`_).\nThis project is not affiliated with or endorsed by RSA Security.\n\n|made-with-python| |Build Status| |PyPI version| |PyPI| |Downloads| |PyPI license| |Code style|\n\n.. |made-with-python| image:: https://img.shields.io/badge/Made%20with-Python-1f425f.svg\n   :target: https://www.python.org/\n.. |Build Status| image:: https://github.com/andreax79/python-securid/workflows/Tests/badge.svg\n   :target: https://github.com/andreax79/python-securid/actions\n.. |PyPI version| image:: https://badge.fury.io/py/securid.svg\n   :target: https://badge.fury.io/py/securid\n.. |PyPI| image:: https://img.shields.io/pypi/pyversions/securid.svg\n   :target: https://pypi.org/project/securid\n.. |Downloads| image:: https://pepy.tech/badge/securid/month\n   :target: https://pepy.tech/project/securid\n.. |PyPI license| image:: https://img.shields.io/pypi/l/securid.svg\n   :target: https://pypi.python.org/pypi/asecurid/\n.. |Code style| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n   :target: https://github.com/psf/black\n.. |Imports: isort| image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat\u0026labelColor=ef8336\n   :target: https://pycqa.github.io/isort/\n.. |Known Vulnerabilities| image:: https://snyk.io/test/github/andreax79/python-securid/badge.svg\n   :target: https://snyk.io/test/github/andreax79/python-cstruct\n\n\nInstallation\n------------\n::\n\n    pip install securid\n\nUsage\n-----\n\nShell\n~~~~~\n\nGenerate token from a password protected sdtid file.\n\n.. code:: bash\n\n  $ securid --filename my.sdtid --password very_secret\n  24848935\n\nConvert a sdtid file into an unprotected JSON file and generate token from the JSON file.\n\n.. code:: bash\n\n  $ securid --filename my.sdtid --password very_secret --export \u003e my.json\n  $ securid --filename my.json\n  24848935\n  $ cat my.json\n  {\"digits\": 8, \"exp_date\": \"2025-04-13\", \"period\": 60, \"secret\": [15, 63, 116, 57, 194, 241, 34, 224, 68, 60, 168, 234, 155, 194, 99, 167], \"serial\": \"530965299048\", \"type\": \"SecurID\"}\n\n\nSdtid File\n~~~~~~~~~~\n::\n\n    import securid\n    from securid.sdtid import SdtidFile\n\n    # Read sdtid file\n    sdtid = SdtidFile('filename.sdtid')\n    # Decrypt token with password\n    token = sdtid.get_token(password='000123456789')\n    # Generate OTP\n    token.now() #=\u003e '123456'\n\n\nStoken File\n~~~~~~~~~~~\n::\n\n    import securid\n    from securid.stoken import StokenFile\n\n    # Read ~/.stokenrc file\n    stoken = StokenFile()\n    # Get token\n    token = stoken.get_token()\n    # Generate OTP\n    token.now() #=\u003e '123456'\n\n\nGenerating a new Token\n~~~~~~~~~~~~~~~~~~~~~~\n::\n\n    import securid\n\n    token = securid.Token.random(exp_date=date(2030,1,1))\n    str(token) # =\u003e  digits: 6 exp_date: 2030-01-01 interval: 60 issuer:  label:  seed: 34b7e942eb6fb35bbf81579dcd9b0522 serial: 922729241304\n    # Generate OTP\n    token.now() #=\u003e '755546'\n\n\nLinks\n~~~~~\n\n* `Project home page (GitHub) \u003chttps://github.com/andreax79/python-securid\u003e`_\n* `Documentation (Read the Docs) \u003chttps://python-securid.readthedocs.io/en/latest/\u003e`_\n* `stoken - Software Token for Linux/UNIX \u003chttps://github.com/cernekee/stoken\u003e`_\n* `PyOTP - Python One-Time Password Library \u003chttps://github.com/pyauth/pyotp\u003e`_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreax79%2Fpython-securid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreax79%2Fpython-securid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreax79%2Fpython-securid/lists"}