{"id":15061108,"url":"https://github.com/ggsmith842/crypto-hacks","last_synced_at":"2026-02-10T21:32:57.770Z","repository":{"id":238183874,"uuid":"796045973","full_name":"ggsmith842/crypto-hacks","owner":"ggsmith842","description":"CTF challenges from the Cryptohack Cryptography course.","archived":false,"fork":false,"pushed_at":"2024-05-27T21:16:29.000Z","size":3581,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-14T00:39:14.502Z","etag":null,"topics":["cryptography","ocaml"],"latest_commit_sha":null,"homepage":"","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ggsmith842.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-04T19:15:13.000Z","updated_at":"2025-06-26T19:54:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"0029d4b9-2a5a-4c39-9d23-8975e6f67e96","html_url":"https://github.com/ggsmith842/crypto-hacks","commit_stats":null,"previous_names":["ggsmith842/crypto-hacks"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ggsmith842/crypto-hacks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggsmith842%2Fcrypto-hacks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggsmith842%2Fcrypto-hacks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggsmith842%2Fcrypto-hacks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggsmith842%2Fcrypto-hacks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ggsmith842","download_url":"https://codeload.github.com/ggsmith842/crypto-hacks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggsmith842%2Fcrypto-hacks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29317956,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T20:44:44.282Z","status":"ssl_error","status_checked_at":"2026-02-10T20:44:43.393Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cryptography","ocaml"],"created_at":"2024-09-24T23:09:21.964Z","updated_at":"2026-02-10T21:32:57.751Z","avatar_url":"https://github.com/ggsmith842.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CryptoHack\r\n## A free, fun platform for learning modern cryptography\r\n### Solutions for Various Challenges implemented in Ocaml\r\n\r\n\u003cp align=\"center\"\u003e\r\n  \u003cimg src=\"https://github.com/ggsmith842/crypto-hacks/blob/main/static/Ocaml_Cryptography.png?raw=true\" alt=\"Crypto Camel\"\u003e\r\n\u003c/p\u003e\r\n\r\n\r\n\r\nhttps://cryptohack.org/\r\n\r\nThe lib folder contains my solutions to the Introduction to Cryptohacks course and some of the Modular Arithmatic lessons. I won't include any challenges outside of those \"starter problems so as not to spoil the challenge for anyone else. \r\n\r\nCrytpohacks uses (and recommends) python as the language of choice for the content but as you'll quickly find out, I used Ocaml. \r\n\r\nI definitely think Python is better suited for cryptography and there are alot of libraries that make solving the challenges here a breeze. I mostly wanted to use Ocaml beause i thought it would be a fun way to learn the language and really understand what is going on when I solve a challenge.\r\n\r\nOcaml's syntax really grew on me as I wrote more code and I find it has more of a flow than Python so I encourage anyone who is interested to give Ocaml a try and see if you can solve some Cryptography puzzles with it! Happy coding!\r\n\r\n\r\n## Useful References \u0026 Notes\r\n\r\n### Quadratic Residues\r\n[Modular Square Root Examples](https://www.rieselprime.de/ziki/Modular_square_root)\r\n\r\nIn modular arithmetic the negative of a number, a mod n can be found as:\r\n $$−a≡n−a(mod \\ n)$$\r\n\r\n\r\n## Modules Used:\r\n1. Str - https://ocaml.org/manual/5.1/api/Str.html\r\n2. Zarith\r\n3. Hex\r\n4. Base_64\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggsmith842%2Fcrypto-hacks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fggsmith842%2Fcrypto-hacks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggsmith842%2Fcrypto-hacks/lists"}