{"id":32183992,"url":"https://github.com/clojurewerkz/scrypt","last_synced_at":"2026-02-21T18:03:51.416Z","repository":{"id":65350696,"uuid":"9788869","full_name":"clojurewerkz/scrypt","owner":"clojurewerkz","description":"A Clojure library for the scrypt key derivation function. Use it to encrypt passwords and other sensitive data.","archived":false,"fork":false,"pushed_at":"2016-01-02T02:09:55.000Z","size":31,"stargazers_count":87,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-10-21T23:36:14.996Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clojurewerkz.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE-APL2.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-05-01T09:31:13.000Z","updated_at":"2025-07-01T23:54:14.000Z","dependencies_parsed_at":"2023-01-19T04:30:28.096Z","dependency_job_id":null,"html_url":"https://github.com/clojurewerkz/scrypt","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/clojurewerkz/scrypt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clojurewerkz%2Fscrypt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clojurewerkz%2Fscrypt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clojurewerkz%2Fscrypt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clojurewerkz%2Fscrypt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clojurewerkz","download_url":"https://codeload.github.com/clojurewerkz/scrypt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clojurewerkz%2Fscrypt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29689644,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T15:51:39.154Z","status":"ssl_error","status_checked_at":"2026-02-21T15:49:03.425Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":[],"created_at":"2025-10-21T23:31:29.266Z","updated_at":"2026-02-21T18:03:51.411Z","avatar_url":"https://github.com/clojurewerkz.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Clojure Scrypt Library\n\nscrypt is a tiny Clojure library for the scrypt key derivation function.\n\n## Why Use Scrypt\n\nScrypt has a significantly higher cost of carrying out brute force attacks on hashed values:\n\n![Key derivation function comparison](https://raw.github.com/pbhogan/scrypt/master/kdf-comparison.png)\n\nFor more details, see the [Scrypt paper](https://www.tarsnap.com/scrypt/scrypt.pdf).\n\n\n## Community\n\nTo subscribe for announcements of releases, important changes and so on, please follow [@ClojureWerkz](https://twitter.com/#!/clojurewerkz) on Twitter.\n\n\n## Project Maturity\n\nClojureWerkz Scrypt is a fairly young project built on top of a Java\nimplementation of Scrypt that has been around for a couple of years.\n\n\n## Artifacts\n\nScrypt artifacts are [released to Clojars](https://clojars.org/clojurewerkz/scrypt). If you are using Maven, add the following repository\ndefinition to your `pom.xml`:\n\n``` xml\n\u003crepository\u003e\n  \u003cid\u003eclojars.org\u003c/id\u003e\n  \u003curl\u003ehttp://clojars.org/repo\u003c/url\u003e\n\u003c/repository\u003e\n```\n\n### The Most Recent Release\n\nWith Leiningen:\n\n    [clojurewerkz/scrypt \"1.2.0\"]\n\n\nWith Maven:\n\n    \u003cdependency\u003e\n      \u003cgroupId\u003eclojurewerkz\u003c/groupId\u003e\n      \u003cartifactId\u003escrypt\u003c/artifactId\u003e\n      \u003cversion\u003e1.2.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\n\n\n## Documentation\n\nScrypt has a single namespace: `clojurewerkz.scrypt.core`, and two functions:\n\n * `clojurewerkz.scrypt.core/encrypt` encrypts a string using Scrypt\n * `clojurewerkz.scrypt.core/verify` verifies a string against a hash produced by `encrypt`\n\nAn example to demonstrate them:\n\n``` clojure\n(require '[clojurewerkz.scrypt.core :as sc])\n\n(let [h (sc/encrypt \"secret\" 16384 8 1)]\n        (sc/verify \"secret\" h))\n;= true\n\n(let [h (sc/encrypt \"secret\" 16384 8 1)]\n        (sc/verify \"another value\" h))\n;= false\n```\n\nArguments that `clojurewerkz.scrypt.core/encrypt` takes control CPU, RAM and parallelization\ncost. The values in the example above are optimal starting points for many applications.\n\nSee the [Scrypt paper](https://www.tarsnap.com/scrypt/scrypt.pdf)\nfor a detailed information.\n\n### Native Scrypt Implementation\n\nIt is possible to use a native implementation as of ClojureWerkz Scrypt `1.1.0`.\nFrom [Lambdaworks Scrypt documentation](https://github.com/wg/scrypt/blob/master/README):\n\n```\n  When the native library can be loaded it will be used instead of the pure\n  Java implementation. On a J2SE compliant JVM the native library will be\n  extracted from the jar and loaded, and on other VMs System.loadLibrary will\n  be called.\n\n  The system property \"com.lambdaworks.jni.loader\" may be set to override\n  the default native library loader with one of the following values:\n\n   * nil: refuse to load native libraries and revert to pure Java implementation\n   * jar: extract native library from jar and load with System.load\n   * sys: use System.loadLibrary, which may require java.library.path to be set\n```\n\n\n## Supported Clojure Versions\n\nscrypt requires Clojure 1.4+.\n\n\n## Continuous Integration Status\n\n[![Continuous Integration status](https://secure.travis-ci.org/clojurewerkz/scrypt.png)](http://travis-ci.org/clojurewerkz/scrypt)\n\n\n\n## Scrypt Is a ClojureWerkz Project\n\nThis library is part of the [group of Clojure libraries known as ClojureWerkz](http://clojurewerkz.org), together with\n * [Monger](http://clojuremongodb.info)\n * [Langohr](https://github.com/michaelklishin/langohr)\n * [Elastisch](https://github.com/clojurewerkz/elastisch)\n * [Welle](http://clojureriak.info)\n * [Neocons](http://clojureneo4j.info)\n * [Quartzite](https://github.com/michaelklishin/quartzite) and several others.\n\n\n## Development\n\nscrypt uses [Leiningen\n2](https://github.com/technomancy/leiningen/blob/master/doc/TUTORIAL.md). Make\nsure you have it installed and then run tests against supported\nClojure versions using\n\n    lein all test\n\nThen create a branch and make your changes on it. Once you are done\nwith your changes and all tests pass, submit a pull request on GitHub.\n\n\n\n## License\n\nCopyright (C) 2013-2016 Michael S. Klishin, Alex Petrov.\n\nDouble licensed under the [Eclipse Public License](http://www.eclipse.org/legal/epl-v10.html) (the same as Clojure) or\nthe [Apache Public License 2.0](http://www.apache.org/licenses/LICENSE-2.0.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclojurewerkz%2Fscrypt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclojurewerkz%2Fscrypt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclojurewerkz%2Fscrypt/lists"}