<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Webd &#187; Objective-C</title>
	<atom:link href="http://webd.fr/tag/objective-c/feed" rel="self" type="application/rss+xml" />
	<link>http://webd.fr</link>
	<description>Le blog de Julien Quéré</description>
	<lastBuildDate>Tue, 22 Mar 2011 15:49:19 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Calculer un hash MD5</title>
		<link>http://webd.fr/636-calculer-un-hash-md5</link>
		<comments>http://webd.fr/636-calculer-un-hash-md5#comments</comments>
		<pubDate>Tue, 19 May 2009 07:14:56 +0000</pubDate>
		<dc:creator>Julien Quéré</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Developpement]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Objective-C]]></category>

		<guid isPermaLink="false">http://webd.fr/?p=636</guid>
		<description><![CDATA[Pour ceux qui ne la connaissent pas, MD5 est une méthode permettant d&#8217;obtenir une empreinte numérique unique d&#8217;un message (au sens large du terme: chaine de caractère ou fichier). Cet algorithme a longtemps été utilisé à des fins de sécurité. &#8230; <a href="http://webd.fr/636-calculer-un-hash-md5">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pour ceux qui ne la connaissent pas, MD5 est une méthode permettant d&#8217;obtenir une empreinte numérique unique d&#8217;un message (au sens large du terme: chaine de caractère ou fichier). Cet algorithme a longtemps été utilisé à des fins de sécurité. Au risque de me répéter: <strong>n&#8217;utilisez pas MD5 à des fins de sécurité</strong> ! Cet algorithme est maintenant faible. Plus d&#8217;informations sur <a href="http://en.wikipedia.org/wiki/MD5#Vulnerability">Wikipedia EN</a>.</p>
<p>MD5 peut être utilisé pour générer une clef &laquo;&nbsp;<i>unique</i>&nbsp;&raquo; à partir d&#8217;une chaine de caractères. Exemple concret: j&#8217;ai des objets représentant des rendez-vous qui naviguent un peu partout (SQLite local, serveur de calendrier distant, &#8230;). Il me faut à tout moment pouvoir identifier uniquement un rendez-vous. La solution que j&#8217;ai choisi est de générer une somme MD5 à partir du titre du rendez-vous, de la date de création et l&#8217;UDID (voir <a href="http://webd.fr/526-astuces-developpement-iphone-6-recuperer-ludid"><em>Comment récupérer l’UDID</em></a>). Voici l&#8217;implémentation que j&#8217;utilise pour générer mes MD5 (dans le cas présent, c&#8217;est une addition de <code>NSString</code>):<br />
<span id="more-636"></span></p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p636code4'); return false;">View Code</a> OBJC</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6364"><td class="code" id="p636code4"><pre class="objc" style="font-family:monospace;"><span style="color: #11740a; font-style: italic;">//</span>
<span style="color: #11740a; font-style: italic;">//  NSStringAdditions.h</span>
<span style="color: #11740a; font-style: italic;">//  iMeeting</span>
<span style="color: #11740a; font-style: italic;">//</span>
<span style="color: #11740a; font-style: italic;">//  Created by Julien on 12/05/09.</span>
<span style="color: #11740a; font-style: italic;">//</span>
&nbsp;
<span style="color: #6e371a;">#import &lt;Foundation/Foundation.h&gt;</span>
<span style="color: #6e371a;">#import &lt;CommonCrypto/CommonDigest.h&gt;</span>
&nbsp;
&nbsp;
<span style="color: #a61390;">@interface</span> <a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> <span style="color: #002200;">&#40;</span>NSStringAdditions<span style="color: #002200;">&#41;</span>  
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>md5Hash;
&nbsp;
<span style="color: #a61390;">@end</span></pre></td></tr></table></div>


<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p636code5'); return false;">View Code</a> OBJC</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6365"><td class="code" id="p636code5"><pre class="objc" style="font-family:monospace;"><span style="color: #11740a; font-style: italic;">//</span>
<span style="color: #11740a; font-style: italic;">//  NSStringAdditions.m</span>
<span style="color: #11740a; font-style: italic;">//  iMeeting</span>
<span style="color: #11740a; font-style: italic;">//</span>
<span style="color: #11740a; font-style: italic;">//  Created by Julien on 12/05/09.</span>
<span style="color: #11740a; font-style: italic;">//</span>
&nbsp;
<span style="color: #6e371a;">#import &quot;NSStringAdditions.h&quot;</span>
&nbsp;
&nbsp;
<span style="color: #a61390;">@implementation</span>  <a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> <span style="color: #002200;">&#40;</span>NSStringAdditions<span style="color: #002200;">&#41;</span>  
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>md5Hash
<span style="color: #002200;">&#123;</span>
	<span style="color: #a61390;">const</span> <span style="color: #a61390;">char</span> <span style="color: #002200;">*</span>cStr <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>self UTF8String<span style="color: #002200;">&#93;</span>;
	<span style="color: #a61390;">unsigned</span> <span style="color: #a61390;">char</span> result<span style="color: #002200;">&#91;</span>CC_MD5_DIGEST_LENGTH<span style="color: #002200;">&#93;</span>;
	CC_MD5<span style="color: #002200;">&#40;</span> cStr, <a href="http://www.opengroup.org/onlinepubs/009695399/functions/strlen.html"><span style="color: #a61390;">strlen</span></a><span style="color: #002200;">&#40;</span>cStr<span style="color: #002200;">&#41;</span>, result <span style="color: #002200;">&#41;</span>;
	<span style="color: #a61390;">return</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> stringWithFormat<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X&quot;</span>,
			result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">0</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">1</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">2</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">3</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">4</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">5</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">6</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">7</span><span style="color: #002200;">&#93;</span>,
			result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">8</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">9</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">10</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">11</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">12</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">13</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">14</span><span style="color: #002200;">&#93;</span>, result<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">15</span><span style="color: #002200;">&#93;</span>
			<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#125;</span>
<span style="color: #a61390;">@end</span></pre></td></tr></table></div>

<p>Et un exemple simple d&#8217;utilisation:</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p636code6'); return false;">View Code</a> OBJC</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6366"><td class="code" id="p636code6"><pre class="objc" style="font-family:monospace;"><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> <span style="color: #002200;">*</span>maChaine <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> stringWithString<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;MaChaineAMoi&quot;</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">:</span>
<a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> <span style="color: #002200;">*</span>monMd5 <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>maChaine md5Hash<span style="color: #002200;">&#93;</span>;</pre></td></tr></table></div>

<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://webd.fr/636-calculer-un-hash-md5/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

