分享:用四十种语言分别写一个MD5算法 之4 Common Lisp语言MD5算法
(require #+sbcl 'sb-md5 #-sbcl 'md5)
(defvar +letters+ "0123456789abcdef")
(defun octets->letters (octet-vector)
(with-output-to-string (stream)
(loop for i across octet-vector
do (flet ((foo (x) (aref +letters+ (ldb (byte x (- x 4)) i))))
(princ (foo 8) stream)
(princ (foo 4) stream)))))
(defun md5 (string)
(octets->letters #+sbcl (sb-md5:md5sum-string string)
#-sbcl (with-input-from-string (stream string)
(md5:md5sum-stream stream))))</pre>
CL-USER> (md5 "foo")
转载于:https://www.cnblogs.com/eyeit/archive/2011/08/12/2142044.html