| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version |
Arguments: context &key return
Finalize and return the MD5 hash from context in a format determined by the return keyword argument.
return can be one of the following values:
:integer
(the default): the return value is an
integer of up to 128 bits representing the digest. Warning: note that
an integer representation of the digest potentially loses information
if the generated signature has leading octets containing only
zeroes. Care should be taking when using this return type if you
intend to further encode the signature (such as to a base64-encoded
string). See the example below.
cl-user(4): (setq c (md5-init)) #(1 35 69 103 137 171 205 239 254 220 ...) cl-user(5): (md5-update c "foo") cl-user(6): (md5-final c :return :usb8) #(172 189 24 219 76 194 248 92 237 239 ...) ;; Potential problem with :return :integer (or :return unspecified ;; as the default is :integer). The call is to MD5-FILE which calls ;; MD5-FINAL and returns the value MD5-FINAL returns. ;; ;; Here we get the md5 value in a shell: % openssl dgst -md5 -hex cmp05-optdialog.jpg MD5(cmp05-optdialog.jpg)= 03c6f3f0ede5188ac49c30e11e7afa4e ;; Now we get it with MD5-FILE: cl-user(17): (md5-file "~/cmp05-optdialog.jpg") 5020706479262241505478555770059160142 cl-user(18): (format t "~x" *) 3c6f3f0ede5188ac49c30e11e7afa4e nil cl-user(19): ;; Note the hex values are the same but the leading 0 is not printed ;; by Lisp, which is dealing with the value as an integer. The leading ;; 0 is preserved when the :return is :hex: cl-user(21): (md5-file "~/cmp05-optdialog.jpg" :return :hex) "03c6f3f0ede5188ac49c30e11e7afa4e" cl-user(22):
See MD5, SHA*, HMAC, RC4, and other message digest support in miscellaneous.htm. See also digest-final.
Copyright (c) 1998-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page was not revised from the 10.0 page.
Created 2019.8.20.
| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version |