<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: hashes</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/hashes.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2010-03-13T00:06:22+00:00</updated><author><name>Simon Willison</name></author><entry><title>Redis weekly update #1 - Hashes and... many more!</title><link href="https://simonwillison.net/2010/Mar/13/redis/#atom-tag" rel="alternate"/><published>2010-03-13T00:06:22+00:00</published><updated>2010-03-13T00:06:22+00:00</updated><id>https://simonwillison.net/2010/Mar/13/redis/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://antirez.com/post/redis-weekly-update-1.html"&gt;Redis weekly update #1 - Hashes and... many more!&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Hashes were the big missing data type in Redis—support is only partial at the moment (no ability to list all keys in a hash or delete a specific key) but at the rate Redis is developed I expect that to be fixed within a week or two.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/hashes"&gt;hashes&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/keyvaluestores"&gt;keyvaluestores&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/nosql"&gt;nosql&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/redis"&gt;redis&lt;/a&gt;&lt;/p&gt;



</summary><category term="hashes"/><category term="keyvaluestores"/><category term="nosql"/><category term="redis"/></entry><entry><title>Researchers Show How to Forge Site Certificates</title><link href="https://simonwillison.net/2008/Dec/30/fake/#atom-tag" rel="alternate"/><published>2008-12-30T15:27:33+00:00</published><updated>2008-12-30T15:27:33+00:00</updated><id>https://simonwillison.net/2008/Dec/30/fake/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.freedom-to-tinker.com/blog/felten/researchers-show-how-forge-site-certificates"&gt;Researchers Show How to Forge Site Certificates&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Use an MD5 collision to create two certificates with the same hash, one for a domain you own and another for amazon.com. Get Equifax CA to sign your domain’s certificate using the outdated “MD5 with RSA” signing method. Copy that signature on to your home-made amazon.com certificate to create a fake certificate for Amazon that will be accepted by any browser.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/collisions"&gt;collisions&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ed-felten"&gt;ed-felten&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/equifaxca"&gt;equifaxca&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hashes"&gt;hashes&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/md5"&gt;md5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ssl"&gt;ssl&lt;/a&gt;&lt;/p&gt;



</summary><category term="collisions"/><category term="ed-felten"/><category term="equifaxca"/><category term="hashes"/><category term="md5"/><category term="security"/><category term="ssl"/></entry><entry><title>Django snippets: Sign a string using SHA1, then shrink it using url-safe base65</title><link href="https://simonwillison.net/2008/Aug/27/snippets/#atom-tag" rel="alternate"/><published>2008-08-27T22:18:49+00:00</published><updated>2008-08-27T22:18:49+00:00</updated><id>https://simonwillison.net/2008/Aug/27/snippets/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.djangosnippets.org/snippets/1004/"&gt;Django snippets: Sign a string using SHA1, then shrink it using url-safe base65&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I needed a way to create tamper-proof URLs and cookies by signing them, but didn’t want the overhead of a full 40 character SHA1 hash. After some experimentation, it turns out you can knock a 40 char hash down to 27 characters by encoding it using a custom base65 encoding which only uses URL-safe characters.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/base65"&gt;base65&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cookies"&gt;cookies&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cryptography"&gt;cryptography&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django-snippets"&gt;django-snippets&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hashes"&gt;hashes&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sha1"&gt;sha1&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/signedcookies"&gt;signedcookies&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/urls"&gt;urls&lt;/a&gt;&lt;/p&gt;



</summary><category term="base65"/><category term="cookies"/><category term="cryptography"/><category term="django"/><category term="django-snippets"/><category term="hashes"/><category term="python"/><category term="security"/><category term="sha1"/><category term="signedcookies"/><category term="urls"/></entry></feed>