<?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>AbriCoCotier.fr &#187; Tutoriel</title>
	<atom:link href="http://www.abricocotier.fr/tag/tutoriel/feed" rel="self" type="application/rss+xml" />
	<link>http://www.abricocotier.fr</link>
	<description>Analyses et anticipations sur le web et les nouvelles technologies de demain.</description>
	<lastBuildDate>Tue, 07 Feb 2012 21:17:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Comment chiffrer et déchiffrer un champs AES128 en Java</title>
		<link>http://www.abricocotier.fr/16333-comment-chiffrer-et-dechiffrer-un-champs-aes128-en-java</link>
		<comments>http://www.abricocotier.fr/16333-comment-chiffrer-et-dechiffrer-un-champs-aes128-en-java#comments</comments>
		<pubDate>Fri, 04 Nov 2011 17:17:18 +0000</pubDate>
		<dc:creator>Louis</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[AES]]></category>
		<category><![CDATA[AES128]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutoriel]]></category>

		<guid isPermaLink="false">http://www.abricocotier.fr/?p=16333</guid>
		<description><![CDATA[Le chiffrage/déchiffrage AES128 nécessite souvent d&#8217;être traité au niveau applicatif (et pas forcément uniquement au niveau base-de-donnée, dont le tuto est ici), donc voici quelques méthodes testées, qui fonctionnent, utilisant d&#8217;un côté une clef MD5 pour générer une clef de &#8230; <a href="http://www.abricocotier.fr/16333-comment-chiffrer-et-dechiffrer-un-champs-aes128-en-java">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Le chiffrage/déchiffrage AES128 nécessite souvent d&#8217;être traité au niveau applicatif (et pas <a href="http://www.abricocotier.fr/16082-comment-crypter-des-champs-en-aes128-dans-une-base-oracle-10g">forcément uniquement au niveau base-de-donnée, dont le tuto est ici</a>), donc voici quelques méthodes testées, qui fonctionnent, utilisant d&#8217;un côté une clef MD5 pour générer une clef de 128bits, et de l&#8217;autre l&#8217;algo AES pour chiffrer le tout. Notez au passage que, comme MD5 n&#8217;est pas bijectif (il existe plusieurs clefs de départ pour un seul résultat MD5), on peut considérer qu&#8217;il existera plusieurs clefs de départ, qui, générées au format MD5, fourniront la clefs final de hashage MD5.   <span id="more-16333"></span><br />
<img src="http://www.abricocotier.fr/wp-content/uploads/2011/11/aes-logo.jpg" alt="" title="aes-logo" width="250" height="156" class="alignleft size-full wp-image-16338" /></p>
<h2>Méthode de génération de la clef en 128bits (utilisation d&#8217;un hash MD5) :</h2>
<p>Cette méthode prend une chaine de caractère en paramètre, et renvoie l&#8217;objet <a href="http://download.oracle.com/javase/1.4.2/docs/api/javax/crypto/spec/SecretKeySpec.html">SecretKeySpec</a> (qui est dans javax.crypto.spec.SecretKeySpec). Il utilise la méthode <a href="http://download.oracle.com/javase/1.4.2/docs/api/java/security/MessageDigest.html">MessageDigest</a>, avec l&#8217;algo MD5 pour générer le hash (NB : ça fonctionne aussi avec SHA). On met en paramètre du constructeur de SecretKeySpec l&#8217;algo qui sera utilisé, mais ça n&#8217;influe pas sur la création de la clef en elle-même. Donc on peut considérer que vous pourriez mettre ce que vous voulez à la place de AES_TRANSFORMATION_STRING.</p>
<pre class="brush: java; title: ; notranslate">
    /**
     * Fournit une chaine de caractère en utilisant le hashage MD5
     *
     * @param toEncrypt : texte à chiffrer
     */
    private static SecretKeySpec getKey(String secretKey) {
        MessageDigest digest = null;
        try {
            digest = MessageDigest.getInstance(&quot;MD5&quot;);

        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException(e);
        }

        try {
            return new SecretKeySpec(digest.digest(new String(secretKey.getBytes(),&quot;UTF8&quot;).getBytes()), AES_TRANSFORMATION_STRING);
        }
        catch (UnsupportedEncodingException e) {
            e.printStackTrace();
            return null;
        }
    }
</pre>
<h2>Méthode de chiffrage AES128 :</h2>
<p>Là on utilise l&#8217;objet <a href="http://download.oracle.com/javase/1.4.2/docs/api/javax/crypto/Cipher.html">Cipher</a>, auquel on fournit la clef de chiffrage (générée par le getKey() ci-dessus), ainsi que l&#8217;algo, et enfin le texte à chiffrer avec l&#8217;encodage de celui-ci (ici : &laquo;&nbsp;ISO-8859-1&#8243;). ON remarque que c&#8217;est la méthode doFinal qui sort la chaine de bytes chiffrés. Notez enfin que l&#8217;encryptage se fait car on a initialisé Cipher avec Cipher.ENCRYPT_MODE.</p>
<pre class="brush: java; title: ; notranslate">
private static final String AES_TRANSFORMATION_STRING = &quot;AES&quot;;

    /**
     * Chiffre une chaine de caractère en utilisant l'algo AES128
     * @param toEncrypt : texte à chiffrer
     */
    public static String encryptAES(String toEncrypt) {
        String encrypted = null;
        try {
           // Instantiate the cipher
           Cipher cipher = Cipher.getInstance(AES_TRANSFORMATION_STRING);
           cipher.init(Cipher.ENCRYPT_MODE, getKey());
           // Récupère la clé secrète
            byte[] cipherText = cipher.doFinal(toEncrypt.getBytes(&quot;ISO-8859-1&quot;));
            encrypted = new String(cipherText);
        }
        catch (Exception e) {
            System.out.println(&quot;Impossible to encrypt with AES algorithm: string=(&quot; + toEncrypt + &quot;)&quot;);
        }
        return encrypted;
    }
</pre>
<h2>Méthode de déchiffrage du contenu AES128 :</h2>
<p>Pour notre exemple, on déchiffre avec la clef, bien sûr, sauf qu&#8217;on met Cipher.DECRYPT_MODE dans l&#8217;initialisation du Cipher.</p>
<pre class="brush: java; title: ; notranslate">
    /**
     * Dechiffre une chaine de caractère en utilisant l'algo AES128
     * @param toDecrypt
     */
    public static String decryptAES(String toDecrypt, String secretKey) {
        String decrypted = null;
        try {
            // Instantiate the cipher
            Cipher cipher = Cipher.getInstance(AES_TRANSFORMATION_STRING);
            cipher.init(Cipher.DECRYPT_MODE, getKey(secretKey));
            byte[] original = cipher.doFinal(toDecrypt.getBytes(&quot;ISO-8859-15&quot;));
            return new String(original);
        }
        catch (Exception e) {
            e.printStackTrace();
            System.out.println(&quot;Impossible to decrypt with AES algorithm: string=(&quot; + toDecrypt + &quot;) message=(&quot; + e.getMessage() + &quot;)&quot;);
        }
        return decrypted;
    }
</pre>
<p>Rappelez vous bien que le Java manipule ici des byte[] et non des String.</p>
<p>Si vous voyez une erreur dans le code donnez ici, n&#8217;hésitez pas à la faire remarquer dans les commentaires !</p>
<p>Voilà voilà !</p>
<hr />
<p><small><a href="http://www.abricocotier.fr">AbriCoCotier.fr</a>, 2011. |
<a href="http://www.abricocotier.fr/16333-comment-chiffrer-et-dechiffrer-un-champs-aes128-en-java">Permalien</a> |
<a href="http://www.abricocotier.fr/16333-comment-chiffrer-et-dechiffrer-un-champs-aes128-en-java#comments">Ajoutez un commentaire !</a> | Plugin <a href="http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/">Better Feed</a>, par <a href="http://planetozh.com/">Ozh</a>
<br/>
Rangé dans : <a href="http://www.abricocotier.fr/tag/aes" rel="tag">AES</a>, <a href="http://www.abricocotier.fr/tag/aes128" rel="tag">AES128</a>, <a href="http://www.abricocotier.fr/tag/java" rel="tag">Java</a>, <a href="http://www.abricocotier.fr/tag/tutoriel" rel="tag">Tutoriel</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.abricocotier.fr/16333-comment-chiffrer-et-dechiffrer-un-champs-aes128-en-java/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Empêcher le copier-coller dans un champs input HTML</title>
		<link>http://www.abricocotier.fr/16065-empecher-le-copier-coller-dans-un-champs-input-html</link>
		<comments>http://www.abricocotier.fr/16065-empecher-le-copier-coller-dans-un-champs-input-html#comments</comments>
		<pubDate>Fri, 28 Oct 2011 16:26:20 +0000</pubDate>
		<dc:creator>Louis</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Tutoriel]]></category>

		<guid isPermaLink="false">http://www.abricocotier.fr/?p=16065</guid>
		<description><![CDATA[J&#8217;ai eu à trouver un moyen d&#8217;empêcher le copier-coller dans un champs input HTML, et donc je partage ici les résultats de mes recherches. C&#8217;est intéressant à plusieurs titres. Sachez qu&#8217;il existe un évènement onPaste sur les champs input (et &#8230; <a href="http://www.abricocotier.fr/16065-empecher-le-copier-coller-dans-un-champs-input-html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai eu à trouver un moyen d&#8217;empêcher le copier-coller dans un champs input HTML, et donc je partage ici les résultats de mes recherches. C&#8217;est intéressant à plusieurs titres. Sachez qu&#8217;il existe un évènement onPaste sur les champs input (et textarea, sans doute), supporté par la large majorité des navigateurs récents (mais pas Opéra). Au passage cet évènement ne semble pas prévu par le W3C (sur la page des <a href="http://en.wikipedia.org/wiki/DOM_events">DOM Events</a>, Wikipedia liste cet événement comme IE only&#8230;).    <span id="more-16065"></span></p>
<p><img src="http://www.abricocotier.fr/wp-content/uploads/2011/10/copier-coller.jpg" alt="" title="copier-coller" width="580" /></p>
<p>Mais bref, pour être sûr et certain, on va utiliser plusieurs méthodes qui s&#8217;assurent que ça fonctionne bien sous tous les navigateurs.</p>
<h2>Bloquer onPaste avec JQuery</h2>
<p>Une solution est <a href="http://www.4guysfromrolla.com/articles/060910-1.aspx">fournie là</a> (et la même est <a href="http://stackoverflow.com/questions/5510129/how-to-disable-ctrlv-paste-with-jquery">redonnée là</a>). J&#8217;ai testé, ça fonctionne niquel : que ce soit le Ctrl+V, le clic droit + coller, bref, ça bloque tout. J&#8217;ai retenu cette solution.</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
   $(document).ready(function () {
      $('#id_of_textbox').bind('paste', function (e) {
         e.preventDefault();
      });
   });
&lt;/script&gt;
</pre>
<p>Sachant que si on veut bloquer le Copier/Couper, on peut rajouter <em>cut </em>et <em>copy </em>dans le <em>bind(&#8216;paste&#8217;</em>, ce qui donnera <em>bind(&#8216;cut copy paste&#8217;</em></p>
<h2>Bloquer le onPaste sans JQuery</h2>
<p>J&#8217;ai trouvé sur le web deux solutions pour rajouter manuellement le onPaste dans le navigateur, et ce sans utiliser JQuery.</p>
<p>La première solution, <a href="http://stackoverflow.com/questions/1226574/disable-copy-paste-into-html-form-using-javascript ">trouvée sur StackOverflow</a> :</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
// Register onpaste on inputs and textareas in browsers that don't
// natively support it.
(function () {
    var onload = window.onload;

    window.onload = function () {
        if (typeof onload == &quot;function&quot;) {
            onload.apply(this, arguments);
        }

        var fields = [];
        var inputs = document.getElementsByTagName(&quot;input&quot;);
        var textareas = document.getElementsByTagName(&quot;textarea&quot;);

        for (var i = 0; i &lt; inputs.length; i++) {
            fields.push(inputs[i]);
        }

        for (var i = 0; i &lt; textareas.length; i++) {
            fields.push(textareas[i]);
        }

        for (var i = 0; i &lt; fields.length; i++) {
            var field = fields[i];

            if (typeof field.onpaste != &quot;function&quot; &amp;&amp; !!field.getAttribute(&quot;onpaste&quot;)) {
                field.onpaste = eval(&quot;(function () { &quot; + field.getAttribute(&quot;onpaste&quot;) + &quot; })&quot;);
            }

            if (typeof field.onpaste == &quot;function&quot;) {
                var oninput = field.oninput;

                field.oninput = function () {
                    if (typeof oninput == &quot;function&quot;) {
                        oninput.apply(this, arguments);
                    }

                    if (typeof this.previousValue == &quot;undefined&quot;) {
                        this.previousValue = this.value;
                    }

                    var pasted = (Math.abs(this.previousValue.length - this.value.length) &gt; 1 &amp;&amp; this.value != &quot;&quot;);

                    if (pasted &amp;&amp; !this.onpaste.apply(this, arguments)) {
                        this.value = this.previousValue;
                    }

                    this.previousValue = this.value;
                };

                if (field.addEventListener) {
                    field.addEventListener(&quot;input&quot;, field.oninput, false);
                } else if (field.attachEvent) {
                    field.attachEvent(&quot;oninput&quot;, field.oninput);
                }
            }
        }
    }
})();
&lt;/script&gt;
</pre>
<h2>En utilisant directement le onPaste</h2>
<p>On peut de toute façon utiliser le <em>onPaste</em>, en oubliant les utilisateurs sous Opera, en utilisant ça, tout simplement :</p>
<pre class="brush: xml; title: ; notranslate">
&lt;input type=&quot;text&quot; onpaste=&quot;return false;&quot; /&gt;
</pre>
<hr />
<p><small><a href="http://www.abricocotier.fr">AbriCoCotier.fr</a>, 2011. |
<a href="http://www.abricocotier.fr/16065-empecher-le-copier-coller-dans-un-champs-input-html">Permalien</a> |
<a href="http://www.abricocotier.fr/16065-empecher-le-copier-coller-dans-un-champs-input-html#comments">2 commentaires</a> | Plugin <a href="http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/">Better Feed</a>, par <a href="http://planetozh.com/">Ozh</a>
<br/>
Rangé dans : <a href="http://www.abricocotier.fr/tag/javascript" rel="tag">JavaScript</a>, <a href="http://www.abricocotier.fr/tag/programmation" rel="tag">Programmation</a>, <a href="http://www.abricocotier.fr/tag/tutoriel" rel="tag">Tutoriel</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.abricocotier.fr/16065-empecher-le-copier-coller-dans-un-champs-input-html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Comment crypter et décrypter des champs en AES128 dans une base Oracle 10g</title>
		<link>http://www.abricocotier.fr/16082-comment-crypter-des-champs-en-aes128-dans-une-base-oracle-10g</link>
		<comments>http://www.abricocotier.fr/16082-comment-crypter-des-champs-en-aes128-dans-une-base-oracle-10g#comments</comments>
		<pubDate>Fri, 21 Oct 2011 13:26:54 +0000</pubDate>
		<dc:creator>Louis</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[AES]]></category>
		<category><![CDATA[AES128]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tutoriel]]></category>

		<guid isPermaLink="false">http://www.abricocotier.fr/?p=16082</guid>
		<description><![CDATA[Voilà un petit bout de code qui fonctionne très bien pour crypter des champs en base de donnée. L&#8217;avantage du cryptage par rapport à un chiffrage (= un hash MD5 par ex) c&#8217;est qu&#8217;il est bijectif, c&#8217;est à dire qu&#8217;à &#8230; <a href="http://www.abricocotier.fr/16082-comment-crypter-des-champs-en-aes128-dans-une-base-oracle-10g">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Voilà un petit bout de code qui fonctionne très bien pour crypter des champs en base de donnée. L&#8217;avantage du cryptage par rapport à un chiffrage (= un hash MD5 par ex) c&#8217;est qu&#8217;il est bijectif, c&#8217;est à dire qu&#8217;à une chaine de caractère non cryptée correspond exactement une seule autre chaine de caractère cryptée (et l&#8217;inverse est vrai). En plus, le cryptage permet d&#8217;être &laquo;&nbsp;décrypté&nbsp;&raquo;, ce que ne permet pas un hash (cela découle de la bijectivité, d&#8217;ailleurs -dites moi si je dis des bêtises).    <span id="more-16082"></span></p>
<p><img src="http://www.abricocotier.fr/wp-content/uploads/2011/10/cryptography_in_world_war_2.jpg" alt="" title="OLYMPUS DIGITAL CAMERA" width="580" /></p>
<p>Donc le code fonctionne sur une base Oracle 10g. Il utilise notamment la fonction Oracle <strong>DBMS_CRYPTO </strong>(notez que vous devez avoir les droits suffisant pour exécuter cette fonction). Tout ce petit monde a besoin de variables, définies préalablement, donc c&#8217;est rangé dans une procédure PLSQL de base.</p>
<h2>Le cryptage du champs</h2>
<pre class="brush: sql; title: ; notranslate">
DECLARE
raw_key RAW(2000);
encrypted_field RAW(30000);
decrypted_field RAW(30000);
encryption_type PLS_INTEGER :=  DBMS_CRYPTO.ENCRYPT_AES128 + DBMS_CRYPTO.CHAIN_ECB + DBMS_CRYPTO.PAD_PKCS5;
v_counter INTEGER := 0;
BEGIN

    -- First the key is hashed with md5 to make it a 128bit key:
    raw_key := DBMS_CRYPTO.Hash (UTL_I18N.STRING_TO_RAW ('your_personnal_key', 'WE8ISO8859P15'), DBMS_CRYPTO.HASH_MD5);

    encrypted_field := DBMS_CRYPTO.ENCRYPT(UTL_I18N.STRING_TO_RAW(field_to_encrypt, 'WE8ISO8859P15'), encryption_type, raw_key);

    update my_table set field_to_encrypt = encrypted_field ;

    COMMIT;
END;
/
</pre>
<p>Explication du fonctionnement : comme vous l&#8217;avez vu : la clef de 128 bits est générée via un hash MD5 d&#8217;une clef personnelle (qui sera nécessaire pour le décryptage), et tout ça est envoyé à la méthode DBMS_CRYPTO qui sort le contenu crypté.</p>
<h2>Le décryptage du champs</h2>
<p>Pour ce qui est du décryptage, ça fonctionne de la même façon, mais avec la fonction <strong>DBMS_CRYPTO.DECRYPT</strong>, qui prend les mêmes arguments que <strong>DBMS_CRYPTO.ENCRYPT</strong> (sauf qu&#8217;au lieu de lui donner le champ de base, vous lui filez le champs cypté : </p>
<pre class="brush: sql; title: ; notranslate">
decrypted_raw := dbms_crypto.Decrypt(
        src =&gt; encrypted_raw,
        typ =&gt; DBMS_CRYPTO.DES_CBC_PKCS5,
        key =&gt; raw_key);
</pre>
<p>Sur l&#8217;exemple ci-dessus, l&#8217;algo de cryptage utilisé était DES_CBC_PKCS5. Les différents algo (et la façon de les appeler) supportés <a href="http://psoug.org/reference/dbms_crypto.html">sont listés là</a>. Notez également que sur cet exemple, la decrypted_raw sort en RAW. Il faudra donc faire un <strong>UTL_RAW.CAST_TO_VARCHAR2(decrypted_raw)</strong> pour pouvoir correctement la lire dans la sortie standard.</p>
<p>Donc pour l&#8217;exemple issu du cryptage, ça aurait donné :</p>
<pre class="brush: sql; title: ; notranslate">
decrypted_field := UTL_RAW.CAST_TO_VARCHAR2(dbms_crypto.Decrypt(
        src =&gt; encrypted_field,
        typ =&gt; encryption_type,
        key =&gt; raw_key));
</pre>
<p>Attention aussi au fait que beaucoup de problèmes peuvent venir de l&#8217;encodage. Notamment parce que AES va vous sortir des bytes (sans charset), et qu&#8217;il va falloir les mettre dans la base sans qu&#8217;ils soient filtrés (et changés) par le charset du champs. Donc choisir un BLOB ou un RAW pour ce champs (et non pas un CLOB qui a un charset). Pareil, une fois récupéré dans la base, ce sera des bytes que vous aurez en main. Donc il vous faudra les remettre dans le bon charset (celui que vous utilisez habituellement pour vos champs).</p>
<p>Source de toutes les infos : le <a href="http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/apdvncrp.htm">site d&#8217;Oracle</a></p>
<p>[<a href="http://www.cs.virginia.edu/jillcrypto/">Image</a>]</p>
<p><strong>Edit :</strong> on ne parle de décryptage que quand on n&#8217;a pas la clef utilisée pour le chiffrage. Cf <a href="http://fr.wikipedia.org/wiki/D%C3%A9crypter">Wikipedia</a> : &laquo;&nbsp;Décrypter consiste à retrouver le texte original à partir d&#8217;un message chiffré sans posséder la clé de (dé)chiffrement.&nbsp;&raquo; (et merci à <a href="http://twitter.com/ChouchouneAD/status/127381068050481152">Chouchoune</a> pour l&#8217;info)</p>
<hr />
<p><small><a href="http://www.abricocotier.fr">AbriCoCotier.fr</a>, 2011. |
<a href="http://www.abricocotier.fr/16082-comment-crypter-des-champs-en-aes128-dans-une-base-oracle-10g">Permalien</a> |
<a href="http://www.abricocotier.fr/16082-comment-crypter-des-champs-en-aes128-dans-une-base-oracle-10g#comments">Ajoutez un commentaire !</a> | Plugin <a href="http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/">Better Feed</a>, par <a href="http://planetozh.com/">Ozh</a>
<br/>
Rangé dans : <a href="http://www.abricocotier.fr/tag/aes" rel="tag">AES</a>, <a href="http://www.abricocotier.fr/tag/aes128" rel="tag">AES128</a>, <a href="http://www.abricocotier.fr/tag/oracle" rel="tag">Oracle</a>, <a href="http://www.abricocotier.fr/tag/sql" rel="tag">SQL</a>, <a href="http://www.abricocotier.fr/tag/tutoriel" rel="tag">Tutoriel</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.abricocotier.fr/16082-comment-crypter-des-champs-en-aes128-dans-une-base-oracle-10g/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skype : Réglage de la vidéo et du son sur Ubuntu 11.04</title>
		<link>http://www.abricocotier.fr/15980-skype-reglage-de-la-video-et-du-son-sur-ubuntu-11-04</link>
		<comments>http://www.abricocotier.fr/15980-skype-reglage-de-la-video-et-du-son-sur-ubuntu-11-04#comments</comments>
		<pubDate>Sun, 16 Oct 2011 09:39:19 +0000</pubDate>
		<dc:creator>Louis</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Skype]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.abricocotier.fr/?p=15980</guid>
		<description><![CDATA[J&#8217;ai eu à régler la vidéo et le son sur Skype sur un Ubuntu 11.04. Le son et la vidéo arrivent par une webcam Logitech Quickcam Messenger classique. Bon il se trouve que c&#8217;était correctement réglé avant de faire la &#8230; <a href="http://www.abricocotier.fr/15980-skype-reglage-de-la-video-et-du-son-sur-ubuntu-11-04">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai eu à régler la vidéo et le son sur Skype sur un Ubuntu 11.04. Le son et la vidéo arrivent par une webcam Logitech Quickcam Messenger classique. Bon il se trouve que c&#8217;était correctement réglé avant de faire la mise à jour vers Ubuntu 11.04, mais la mise à jour a du perdre le réglage. Pas grave, c&#8217;est pas gênant, mais il faut reconnaître que pour la personne âgée qui utilise ce Skype (ma grand-mère en l&#8217;occurrence), ne pas avoir le son ni la vidéo s&#8217;avère dommage (et on peut la comprendre). JE donne donc ici les réglages que j&#8217;ai eu à faire pour faire fonctionner Skype sur son PC (c&#8217;est un Ubuntu 11.04 32 bits).   <span id="more-15980"></span></p>
<p><img src="http://www.abricocotier.fr/wp-content/uploads/2011/10/logitech_quickcam_messenger.jpg" alt="" title="logitech_quickcam_messenger" width="580" /></p>
<h2>Réglage du micro</h2>
<p>Le micro passant par la webcam, il faut le régler explicitement dans les préférences du son.</p>
<p>Aler dans <strong>Système > Préférences > Son > onglet &laquo;&nbsp;Entrée&nbsp;&raquo;</strong>. Là, cliquez sur le bouton radio correspondant à la webcam (cf image ci-dessous). Et ensuite cliquez sur le bouton &laquo;&nbsp;Fermer&nbsp;&raquo;.</p>
<p><img src="http://www.abricocotier.fr/wp-content/uploads/2011/10/son_entree_quickcam_logitech.jpg" alt="" title="son_entree_quickcam_logitech" width="538" height="511" /></p>
<h2>Réglage de la vidéo</h2>
<p>Il m&#8217;aura fallu, pour activer la vidéo, changer la commande du lanceur de Skype par :</p>
<p><code>env LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype</code></p>
<p><img src="http://www.abricocotier.fr/wp-content/uploads/2011/10/reglage_lanceur_skype.jpg" alt="" title="reglage_lanceur_skype" width="580" /></p>
<hr />
<p><small><a href="http://www.abricocotier.fr">AbriCoCotier.fr</a>, 2011. |
<a href="http://www.abricocotier.fr/15980-skype-reglage-de-la-video-et-du-son-sur-ubuntu-11-04">Permalien</a> |
<a href="http://www.abricocotier.fr/15980-skype-reglage-de-la-video-et-du-son-sur-ubuntu-11-04#comments">Ajoutez un commentaire !</a> | Plugin <a href="http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/">Better Feed</a>, par <a href="http://planetozh.com/">Ozh</a>
<br/>
Rangé dans : <a href="http://www.abricocotier.fr/tag/skype" rel="tag">Skype</a>, <a href="http://www.abricocotier.fr/tag/tutoriel" rel="tag">Tutoriel</a>, <a href="http://www.abricocotier.fr/tag/ubuntu" rel="tag">Ubuntu</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.abricocotier.fr/15980-skype-reglage-de-la-video-et-du-son-sur-ubuntu-11-04/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment activer l&#8217;appareil photo depuis l&#8217;écran de verrouillage sur iOS5 ?</title>
		<link>http://www.abricocotier.fr/15951-comment-activer-lappareil-photo-depuis-lecran-de-verrouillage-sur-ios5</link>
		<comments>http://www.abricocotier.fr/15951-comment-activer-lappareil-photo-depuis-lecran-de-verrouillage-sur-ios5#comments</comments>
		<pubDate>Tue, 13 Sep 2011 15:52:38 +0000</pubDate>
		<dc:creator>Louis</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Tutoriel]]></category>

		<guid isPermaLink="false">http://www.abricocotier.fr/?p=15951</guid>
		<description><![CDATA[Je me suis plusieurs fois demandé comment avoir le bouton appareil photo directement sur l&#8217;écran de verrouillage de l&#8217;iPhone une fois qu&#8217;on a iOS5. Facile, il suffit de double-cliquer sur le bouton physique Home (le bouton rond en dessous de &#8230; <a href="http://www.abricocotier.fr/15951-comment-activer-lappareil-photo-depuis-lecran-de-verrouillage-sur-ios5">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je me suis plusieurs fois demandé comment avoir le bouton appareil photo directement sur l&#8217;écran de verrouillage de l&#8217;iPhone une fois qu&#8217;on a iOS5. Facile, il suffit de <strong>double-cliquer sur le bouton physique Home</strong> (le bouton rond en dessous de l&#8217;écran) afin que le bouton d&#8217;appareil photo apparaisse sur l&#8217;écran de verrouillage.</p>
<p>Par la suite, iOS5 permet aussi de prendre le photos en utilisant le bouton de volume &laquo;&nbsp;+&nbsp;&raquo; comme déclencheur alternatif (le déclencheur sur l&#8217;écran est toujours utilisable, rassurez-vous) !    <span id="more-15951"></span></p>
<p><img src="http://www.abricocotier.fr/wp-content/uploads/2011/10/camera_ios5_iphone_acces_rapide.jpg" alt="" title="camera_ios5_iphone_acces_rapide" width="580" /></p>
<hr />
<p><small><a href="http://www.abricocotier.fr">AbriCoCotier.fr</a>, 2011. |
<a href="http://www.abricocotier.fr/15951-comment-activer-lappareil-photo-depuis-lecran-de-verrouillage-sur-ios5">Permalien</a> |
<a href="http://www.abricocotier.fr/15951-comment-activer-lappareil-photo-depuis-lecran-de-verrouillage-sur-ios5#comments">Ajoutez un commentaire !</a> | Plugin <a href="http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/">Better Feed</a>, par <a href="http://planetozh.com/">Ozh</a>
<br/>
Rangé dans : <a href="http://www.abricocotier.fr/tag/apple" rel="tag">Apple</a>, <a href="http://www.abricocotier.fr/tag/astuce" rel="tag">Astuce</a>, <a href="http://www.abricocotier.fr/tag/tutoriel" rel="tag">Tutoriel</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.abricocotier.fr/15951-comment-activer-lappareil-photo-depuis-lecran-de-verrouillage-sur-ios5/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple iOS5 et iPhone 4S : comment faire pour activer iMessage ?</title>
		<link>http://www.abricocotier.fr/15946-apple-ios5-et-iphone-4s-comment-faire-pour-activer-imessage</link>
		<comments>http://www.abricocotier.fr/15946-apple-ios5-et-iphone-4s-comment-faire-pour-activer-imessage#comments</comments>
		<pubDate>Tue, 13 Sep 2011 15:36:01 +0000</pubDate>
		<dc:creator>Louis</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Tutoriel]]></category>

		<guid isPermaLink="false">http://www.abricocotier.fr/?p=15946</guid>
		<description><![CDATA[Il suffit pour cela de vous rendre dans votre menu Reglage > Messages > Activer iMessage. Attention : pour utiliser iMessage, il faut que la personne à laquelle vous envoyez votre SMS/iMessage ait aussi un iPhone. AbriCoCotier.fr, 2011. &#124; Permalien &#8230; <a href="http://www.abricocotier.fr/15946-apple-ios5-et-iphone-4s-comment-faire-pour-activer-imessage">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Il suffit pour cela de vous rendre dans votre menu <strong>Reglage > Messages > Activer iMessage</strong>.</p>
<p>Attention : pour utiliser iMessage, il faut que la personne à laquelle vous envoyez votre SMS/iMessage ait aussi un iPhone.    <span id="more-15946"></span></p>
<p><img src="http://www.abricocotier.fr/wp-content/uploads/2011/10/iphone_imessage_reglage.jpg" alt="" title="iphone_imessage_reglage" width="580" /></p>
<hr />
<p><small><a href="http://www.abricocotier.fr">AbriCoCotier.fr</a>, 2011. |
<a href="http://www.abricocotier.fr/15946-apple-ios5-et-iphone-4s-comment-faire-pour-activer-imessage">Permalien</a> |
<a href="http://www.abricocotier.fr/15946-apple-ios5-et-iphone-4s-comment-faire-pour-activer-imessage#comments">Ajoutez un commentaire !</a> | Plugin <a href="http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/">Better Feed</a>, par <a href="http://planetozh.com/">Ozh</a>
<br/>
Rangé dans : <a href="http://www.abricocotier.fr/tag/apple" rel="tag">Apple</a>, <a href="http://www.abricocotier.fr/tag/astuce" rel="tag">Astuce</a>, <a href="http://www.abricocotier.fr/tag/tutoriel" rel="tag">Tutoriel</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.abricocotier.fr/15946-apple-ios5-et-iphone-4s-comment-faire-pour-activer-imessage/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

