{"id":1957,"url":"https://github.com/ImKcat/CatCrypto","last_synced_at":"2025-08-02T05:33:24.092Z","repository":{"id":56905708,"uuid":"113713839","full_name":"imkcat/CatCrypto","owner":"imkcat","description":"An easy way for hashing and encryption.","archived":false,"fork":false,"pushed_at":"2023-08-19T02:59:39.000Z","size":1539,"stargazers_count":70,"open_issues_count":3,"forks_count":13,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-20T21:56:53.031Z","etag":null,"topics":["argon2","asymmetric","crypto","cryptography","encryption","hashing","ios","md2","md4","md5","md6","message-digest","password-hash","sha1","sha2","sha3","swift"],"latest_commit_sha":null,"homepage":"","language":"C","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/imkcat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2017-12-10T01:27:48.000Z","updated_at":"2024-10-19T03:27:50.000Z","dependencies_parsed_at":"2024-01-07T22:23:34.431Z","dependency_job_id":"c4efb6f6-dd83-49a8-88bc-ae02e5911e8b","html_url":"https://github.com/imkcat/CatCrypto","commit_stats":{"total_commits":231,"total_committers":5,"mean_commits":46.2,"dds":0.06493506493506496,"last_synced_commit":"00fc794202b7a516b3b87b4831c0d3d430c96ff5"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imkcat%2FCatCrypto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imkcat%2FCatCrypto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imkcat%2FCatCrypto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imkcat%2FCatCrypto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imkcat","download_url":"https://codeload.github.com/imkcat/CatCrypto/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228443825,"owners_count":17920794,"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":["argon2","asymmetric","crypto","cryptography","encryption","hashing","ios","md2","md4","md5","md6","message-digest","password-hash","sha1","sha2","sha3","swift"],"created_at":"2024-01-05T20:15:59.882Z","updated_at":"2024-12-06T09:30:46.598Z","avatar_url":"https://github.com/imkcat.png","language":"C","funding_links":[],"categories":["Security"],"sub_categories":["Encryption","Other free courses"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/ImKcat/CatCrypto/raw/master/CatCrypto-Logo.png\" alt=\"Logo\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Language-swift4-EF5138.svg?style=flat\" alt=\"Language\"\u003e\n  \u003ca href=\"http://cocoapods.org/pods/CatCrypto\"\u003e\u003cimg src=\"https://img.shields.io/cocoapods/p/CatCrypto.svg?style=flat\" alt=\"Support Platform\"\u003e\u003c/a\u003e\n  \u003ca href=\"http://cocoapods.org/pods/CatCrypto\"\u003e\u003cimg src=\"https://img.shields.io/cocoapods/l/CatCrypto.svg?style=flat\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Carthage/Carthage\"\u003e\u003cimg src=\"https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat\" alt=\"Carthage compatible\"\u003e\u003c/a\u003e\n  \u003ca href=\"http://cocoapods.org/pods/CatCrypto\"\u003e\u003cimg src=\"https://img.shields.io/cocoapods/v/CatCrypto.svg?style=flat\" alt=\"CocoaPods Version\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://travis-ci.org/ImKcat/CatCrypto\"\u003e\u003cimg src=\"http://img.shields.io/travis/ImKcat/CatCrypto.svg?style=flat\" alt=\"Travis CI Status\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://codebeat.co/projects/github-com-imkcat-catcrypto-master\"\u003e\u003cimg src=\"https://codebeat.co/badges/003d39ba-cbd6-4166-ab28-57630fc60f9f\" alt=\"Codebeat\"\u003e\u003c/a\u003e\n      \u003ca href=\"https://codecov.io/gh/ImKcat/CatCrypto\"\u003e\u003cimg src=\"https://codecov.io/gh/ImKcat/CatCrypto/branch/master/graph/badge.svg\" alt=\"Codecov\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://beerpay.io/ImKcat/CatCrypto\"\u003e\u003cimg src=\"https://beerpay.io/ImKcat/CatCrypto/badge.svg?style=flat\" alt=\"Beerpay\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nCatCrypto include a series of hashing and encryption functions and more functions in progress!\n\nCatCrypto also contains Swift bindings of [Argon2](https://github.com/P-H-C/phc-winner-argon2), the password-hashing function that won the Password Hashing Competition (PHC).\n\n## Content\n\n- [Content](#content)\n- [Requirements](#requirements)\n- [Support Functions](#support-functions)\n- [Upcoming Functions](#upcoming-functions)\n- [Usage](#usage)\n  - [Context](#context)\n  - [Hashing](#hashing)\n  - [Verification](#verification)\n- [Installation](#installation)\n  - [CocoaPods](#cocoapods)\n  - [Carthage](#carthage)\n- [Documentation](#documentation)\n- [Interacting](#interacting)\n  - [Need Help](#need-help)\n  - [Contribute](#contribute)\n- [License](#license)\n\n## Requirements\n\n- Swift 4+\n- iOS 8.0+\n- macOS 10.10+\n- tvOS 9.0+\n- watchOS 2.0+\n\n## Support Functions\n\n- Hashing\n  - Message-Digest\n    - [MD2](https://tools.ietf.org/html/rfc1319)\n    - [MD4](https://tools.ietf.org/html/rfc1320)\n    - [MD5](https://tools.ietf.org/html/rfc1321)\n    - [MD6](http://groups.csail.mit.edu/cis/md6/)\n  - Secure Hash Algorithm\n    - [SHA-1](https://csrc.nist.gov/csrc/media/publications/fips/180/4/final/documents/fips180-4-draft-aug2014.pdf)\n    - [SHA-2](https://csrc.nist.gov/csrc/media/publications/fips/180/4/final/documents/fips180-4-draft-aug2014.pdf)\n    - [SHA-3](http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf)\n  - [Argon2](https://github.com/P-H-C/phc-winner-argon2)\n\n## Upcoming Functions\n\n- Advanced Encryption Standard (AES)\n- Data Encryption Standard (DES)\n- Triple DES (3DES)\n\n## Usage\n\n### Context\n\nContext contains inputs and configures for function crypto.\n\nChange hash length with `SHA-2` function crypto:\n\n```swift\nlet sha2Crypto = CatSHA2Crypto()\nsha2Crypto.context.hashLength = .bit384\n```\n\n### Hashing\n\n[Hash function](https://en.wikipedia.org/wiki/Hash_function) used to map data of arbitrary size to data of fixed size.\n\nSimply hashing string with `MD6` function crypto:\n\n```swift\nlet md6Crypto = CatMD6Crypto()\nmd6Crypto.context.hashLength = .bit512\nprint(md6Crypto.hash(password: \"CatCrypto\").hexStringValue())\n\n// 3ad3003383633c40281bb5185424ee56a5a1c6dfa3a0e7c3a9e381c58d253323e146feb3f04cb9ebcde47186e042ce63109b8d19f3ca760ea00c90654eb2b272\n```\n\n### Verification\n\nSome hash function support to verify their hashed value.\n\nVerifing with `Argon2` function crypto:\n\n```swift\nlet hash = \"$argon2i$v=19$m=4096,t=3,p=1$Q2F0Q3J5cHRv$Ad6gXMVLvZ3uQOeTi6nCmU4Ns2/nPDfPD5B3yyebv8k\"\nlet argon2Crypto = CatArgon2Crypto()\nargon2Crypto.context.mode = .argon2i\nargon2Crypto.context.salt = \"CatCrypto\"\nprint(argon2Crypto.verify(hash: hash, password: \"CatCrypto\").boolValue())\n\n// true\n```\n\n## Installation\n\nCatCrypto is available through [CocoaPods](http://cocoapods.org) and [Carthage](https://github.com/Carthage/Carthage).\n\n### CocoaPods\n\nAdd the following line to your Podfile:\n\n```ruby\nuse_frameworks!\n\npod 'CatCrypto'\n```\n\n### Carthage\n\nAdd the following line to your Cartfile:\n\n```ruby\ngithub \"ImKcat/CatCrypto\"\n```\n\n## Documentation\n\n- [API Reference](https://imkcat.github.io/CatCrypto/)\n\n## Interacting\n\nCatCrypto is always trying to support more functions and keep itself easy to use, please reading down below to interacting with CatCrypto.\n\n### Need Help\n\n- Reading [usage](https://github.com/ImKcat/CatCrypto#usage) section and [API Reference](https://imkcat.github.io/CatCrypto/)\n- Searched in [issues](https://github.com/ImKcat/CatCrypto/issues) to find duplicated or related issues\n- Ask question? [Open a question type issue](https://github.com/ImKcat/CatCrypto/issues/new)\n- Report bug? [Open a bug type issue](https://github.com/ImKcat/CatCrypto/issues/new)\n- Need new feature? [Open a feature type issue](https://github.com/ImKcat/CatCrypto/issues/new)\n\n### Contribute\n\nIf you want to contribute with CatCrypto, please reading [Contribute Guidelines](https://github.com/ImKcat/CatCrypto/blob/master/CONTRIBUTING.md) at first.\n\n## License\n\nCatCrypto is available under the MIT license. See the LICENSE file for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FImKcat%2FCatCrypto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FImKcat%2FCatCrypto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FImKcat%2FCatCrypto/lists"}