Advertisement
Guest User

tenouttaten

a guest
Sep 20th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 3.09 KB | None | 0 0
  1. (defun %md5->hext-str (md5)
  2.   (let ((hex-digest (make-array 32 :element-type 'character)))
  3.     (flet ((nibble-char (nibble)
  4.              (ecase nibble
  5.                (0 #\0)
  6.                (1 #\1)
  7.                (2 #\2)
  8.                (3 #\3)
  9.                (4 #\4)
  10.                (5 #\5)
  11.                (6 #\6)
  12.                (7 #\7)
  13.                (8 #\8)
  14.                (9 #\9)
  15.                (10 #\a)
  16.                (11 #\b)
  17.                (12 #\c)
  18.                (13 #\d)
  19.                (14 #\e)
  20.                (15 #\f))))
  21.       ;;We need to convert the md5 into a hex string
  22.       (setf (char hex-digest 0) (nibble-char (ash (logand #xF0 (aref md5 0)) -4))
  23.             (char hex-digest 1) (nibble-char (logand #x0F (aref md5 0)))
  24.             (char hex-digest 2) (nibble-char (ash (logand #xF0 (aref md5 1)) -4))
  25.             (char hex-digest 3) (nibble-char (logand #x0F (aref md5 1)))
  26.             (char hex-digest 4) (nibble-char (ash (logand #xF0 (aref md5 2)) -4))
  27.             (char hex-digest 5) (nibble-char (logand #x0F (aref md5 2)))
  28.             (char hex-digest 6) (nibble-char (ash (logand #xF0 (aref md5 3)) -4))
  29.             (char hex-digest 7) (nibble-char (logand #x0F (aref md5 3)))
  30.             (char hex-digest 8) (nibble-char (ash (logand #xF0 (aref md5 4)) -4))
  31.             (char hex-digest 9) (nibble-char (logand #x0F (aref md5 4)))
  32.             (char hex-digest 10) (nibble-char (ash (logand #xF0 (aref md5 5)) -4))
  33.             (char hex-digest 11) (nibble-char (logand #x0F (aref md5 5)))
  34.             (char hex-digest 12) (nibble-char (ash (logand #xF0 (aref md5 6)) -4))
  35.             (char hex-digest 13) (nibble-char (logand #x0F (aref md5 6)))
  36.             (char hex-digest 14) (nibble-char (ash (logand #xF0 (aref md5 7)) -4))
  37.             (char hex-digest 15) (nibble-char (logand #x0F (aref md5 7)))
  38.             (char hex-digest 16) (nibble-char (ash (logand #xF0 (aref md5 8)) -4))
  39.             (char hex-digest 17) (nibble-char (logand #x0F (aref md5 8)))
  40.             (char hex-digest 18) (nibble-char (ash (logand #xF0 (aref md5 9)) -4))
  41.             (char hex-digest 19) (nibble-char (logand #x0F (aref md5 9)))
  42.             (char hex-digest 20) (nibble-char (ash (logand #xF0 (aref md5 10)) -4))
  43.             (char hex-digest 21) (nibble-char (logand #x0F (aref md5 10)))
  44.             (char hex-digest 22) (nibble-char (ash (logand #xF0 (aref md5 11)) -4))
  45.             (char hex-digest 23) (nibble-char (logand #x0F (aref md5 11)))
  46.             (char hex-digest 24) (nibble-char (ash (logand #xF0 (aref md5 12)) -4))
  47.             (char hex-digest 25) (nibble-char (logand #x0F (aref md5 12)))
  48.             (char hex-digest 26) (nibble-char (ash (logand #xF0 (aref md5 13)) -4))
  49.             (char hex-digest 27) (nibble-char (logand #x0F (aref md5 13)))
  50.             (char hex-digest 28) (nibble-char (ash (logand #xF0 (aref md5 14)) -4))
  51.             (char hex-digest 29) (nibble-char (logand #x0F (aref md5 14)))
  52.             (char hex-digest 30) (nibble-char (ash (logand #xF0 (aref md5 15)) -4))
  53.             (char hex-digest 31) (nibble-char (logand #x0F (aref md5 15)))))
  54.     hex-digest))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement