ray1729.clj-message-digest

https://github.com/ray1729/clj-message-digest.git

git clone 'https://github.com/ray1729/clj-message-digest.git'

(ql:quickload :ray1729.clj-message-digest)
4

clj-message-digest

Message digest (MD5, SHA-1, etc.) functions for Clojure 1.3.0

For each digest algorithm supported by java.security.MessageDigest (MD2, MD5, SHA-1, SHA-256, SHA-384 and SHA-512), this namespace provides three functions. The first, named after the lower-case algorithm name, returns a digest as a byte array; the second function (suffix “-hex”) returns the digest as a hex string; and the third function (suffix “-base64”) returns the digest as a base-64 encoded string.

For example, for the MD5 algorithm, three functions are provided:

These functions are implemented as multimethods, currently defined for byte array, string, input stream, and file objects.

The implementation borrows code from http://gertalot.com/2011/06/28/md5-hash-from-a-file-in-clojure/ and http://tomlee.co/2009/06/clojure-and-messagedigest/.

Usage

(use 'clj-message-digest.core)

(md5-hex “some string”) (md5-base64 “some string”)

(sha-1-hex (File. “/some/file”))

etc.

Installation

From git@github.com:ray1729/clj-message-digest.git for now, will make its way to Clojars RSN.

Changes For 1.3.0 Compatibility

Removed clojure.contrib.io dependencies: * replaced byte-array-type with: (class (make-array Byte/TYPE 0)) * replaced to-byte-array with: (.getBytes s “UTF-8”) * replaced input-stream with: clojure.java.io/input-stream

License

Copyright (C) 2011 Ray Miller mailto:ray@1729.org.uk

Distributed under the Eclipse Public License, the same as Clojure.

Acknowledgements

Thank you to Jeff Sacks for updating to Clojure 1.3.