I&#39;ve gotten a bit of help in #racket on freenode so far, but I&#39;m still facing a problem with this.<div><br></div><div>In Racket, I expect that this will get me a SHA1 hash (as bytes) of a string, using a key:</div>
<div><br></div><div><div>(require web-server/stuffers/hmac-sha1</div><div>            net/base64)</div></div><div><br></div><div><div>(define (str-to-hash private-key str)</div><div>   (base64-encode (HMAC-SHA1 (string-&gt;bytes/utf-8 private-key)</div>
<div>                                                (string-&gt;bytes/utf-8 str))))</div></div><div><br></div><div>And let&#39;s convert the bytes to a string of hex:</div><div><br></div><div>(apply string-append (map (lambda (x) (number-&gt;string x 16)) (bytes-&gt;list (str-to-hash &quot;foo&quot; &quot;bar&quot;))))</div>
<div><br></div><div>This gives me:</div><div><br></div><div><div>&quot;527254735747455846553273314a316d546c316a2f63694f2b31453dda&quot;</div></div><div><br></div><div>In Python, doing what I assume to be the same thing:</div>
<div><br></div><div>import hmac</div><div>from hashlib import sha1</div><div><br></div><div><div>hmac.new(&#39;foo&#39;, &#39;bar&#39;, sha1).hexdigest()</div><div><br></div><div>Returns something completely different:</div>
<div><br></div><div>&#39;46b4ec586117154dacd49d664e5d63fdc88efb51&#39;</div><div><br></div><div>Does anyone have any idea what&#39;s going on here?</div><div><br>Shawn</div><br><div class="gmail_quote">On Sun, May 13, 2012 at 7:18 PM, Shawn Smith <span dir="ltr">&lt;<a href="mailto:shawn.p.smith@gmail.com" target="_blank">shawn.p.smith@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<div><br></div><div>I&#39;m trying to generate a SHA1 hash using a private key and a given string, like so:</div><div>
<br></div><div>(define a-hash (HMAC-SHA1 (string-&gt;bytes/locale &quot;foo&quot;) (string-&gt;bytes/locale &quot;bar&quot;)))</div>
<div><br></div><div>This returns bytes, but when I try to turn those bytes into a string with:</div><div><br></div><div>(bytes-&gt;string/locale a-hash)</div><div><br></div><div>I get:</div><div><br></div><div>bytes-&gt;string/locale: string is not a well-formed UTF-8 encoding: #&quot;F\264\354Xa\27\25M\254\324\235fN]c\375\310\216\373Q&quot;</div>

<div><br></div><div>As I have no clue how to diagnose this, I&#39;d appreciate any suggestions or help.</div><div><br></div><div>Thanks,<br>Shawn</div>
</blockquote></div><br></div>