Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Staticrypt | 5,588 | 1 | 6 | a month ago | 37 | June 13, 2023 | 8 | mit | HTML | |
Password protect a static HTML page, decrypted in-browser | ||||||||||
Node Argon2 | 1,673 | 273 | 290 | 12 days ago | 69 | September 01, 2023 | 19 | mit | JavaScript | |
Node.js bindings for Argon2 hashing algorithm | ||||||||||
Pwd.sh | 1,495 | 9 months ago | 1 | mit | Shell | |||||
GPG symmetric password manager | ||||||||||
Picocrypt | 1,441 | 2 months ago | gpl-3.0 | Go | ||||||
A very small, very simple, yet very secure encryption tool. | ||||||||||
Yopass | 1,365 | a day ago | 62 | April 23, 2021 | 28 | apache-2.0 | TypeScript | |||
Secure sharing of secrets, passwords and files | ||||||||||
Bkcrack | 1,099 | a month ago | 18 | zlib | C++ | |||||
Crack legacy zip encryption with Biham and Kocher's known plaintext attack. | ||||||||||
Hexo Blog Encrypt | 904 | 15 | 2 | 3 days ago | 65 | March 17, 2021 | mit | CSS | ||
Yet, just another hexo plugin for security. | ||||||||||
Swifty | 845 | 15 days ago | 48 | gpl-3.0 | JavaScript | |||||
🔑 Free Offline-first Password Manager | ||||||||||
Redditstorage | 783 | 6 years ago | 3 | Python | ||||||
Store files onto reddit subreddits. | ||||||||||
Link Lock | 763 | 20 days ago | 6 | mit | JavaScript | |||||
Password-protect URLs using AES in the browser; create hidden bookmarks without a browser extension |
scrypt is a tiny Clojure library for the scrypt key derivation function.
Scrypt has a significantly higher cost of carrying out brute force attacks on hashed values:
For more details, see the Scrypt paper.
To subscribe for announcements of releases, important changes and so on, please follow @ClojureWerkz on Twitter.
ClojureWerkz Scrypt is a fairly young project built on top of a Java implementation of Scrypt that has been around for a couple of years.
Scrypt artifacts are released to Clojars. If you are using Maven, add the following repository
definition to your pom.xml
:
<repository>
<id>clojars.org</id>
<url>http://clojars.org/repo</url>
</repository>
With Leiningen:
[clojurewerkz/scrypt "1.2.0"]
With Maven:
<dependency>
<groupId>clojurewerkz</groupId>
<artifactId>scrypt</artifactId>
<version>1.2.0</version>
</dependency>
Scrypt has a single namespace: clojurewerkz.scrypt.core
, and two functions:
clojurewerkz.scrypt.core/encrypt
encrypts a string using Scryptclojurewerkz.scrypt.core/verify
verifies a string against a hash produced by encrypt
An example to demonstrate them:
(require '[clojurewerkz.scrypt.core :as sc])
(let [h (sc/encrypt "secret" 16384 8 1)]
(sc/verify "secret" h))
;= true
(let [h (sc/encrypt "secret" 16384 8 1)]
(sc/verify "another value" h))
;= false
Arguments that clojurewerkz.scrypt.core/encrypt
takes control CPU, RAM and parallelization
cost. The values in the example above are optimal starting points for many applications.
See the Scrypt paper for a detailed information.
It is possible to use a native implementation as of ClojureWerkz Scrypt 1.1.0
.
From Lambdaworks Scrypt documentation:
When the native library can be loaded it will be used instead of the pure
Java implementation. On a J2SE compliant JVM the native library will be
extracted from the jar and loaded, and on other VMs System.loadLibrary will
be called.
The system property "com.lambdaworks.jni.loader" may be set to override
the default native library loader with one of the following values:
* nil: refuse to load native libraries and revert to pure Java implementation
* jar: extract native library from jar and load with System.load
* sys: use System.loadLibrary, which may require java.library.path to be set
scrypt requires Clojure 1.4+.
This library is part of the group of Clojure libraries known as ClojureWerkz, together with
scrypt uses Leiningen 2. Make sure you have it installed and then run tests against supported Clojure versions using
lein all test
Then create a branch and make your changes on it. Once you are done with your changes and all tests pass, submit a pull request on GitHub.
Copyright (C) 2013-2016 Michael S. Klishin, Alex Petrov.
Double licensed under the Eclipse Public License (the same as Clojure) or the Apache Public License 2.0.