<?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>José Marin de la Fuente &#187; md5</title>
	<atom:link href="http://www.marindelafuente.com.ar/tag/md5/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marindelafuente.com.ar</link>
	<description>WebDesign, Marketing Web &#38; Solutions - Looking for better ways to manage your Business</description>
	<lastBuildDate>Mon, 30 Jan 2012 14:50:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Agregar usuarios con contraseña con hash MD5 (hashed MD5 password) en OpenLDAP.</title>
		<link>http://www.marindelafuente.com.ar/agregar-usuarios-con-contrasena-con-hash-md5-hashed-md5-password-en-openldap/</link>
		<comments>http://www.marindelafuente.com.ar/agregar-usuarios-con-contrasena-con-hash-md5-hashed-md5-password-en-openldap/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 17:39:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Seguridad informática]]></category>
		<category><![CDATA[base64]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[openldap]]></category>
		<category><![CDATA[passwords]]></category>

		<guid isPermaLink="false">http://www.marindelafuente.com.ar/?p=139</guid>
		<description><![CDATA[En este post voy a explicar como agregar usuarios con contraseña con hash MD5 (hashed MD5 password) en OpenLDAP. La idea es “decirle” a nuestro OpenLDAP el tipo de HASH (ejemplo: {MD5}) antes de donde va la contraseña, esta contraseña será el resultado de cifrar como BASE64 el BINARIO del hash MD5. osea… no es [...]]]></description>
			<content:encoded><![CDATA[<p>En este post voy a explicar como agregar usuarios con contraseña con hash MD5 (hashed MD5 password) en OpenLDAP.<span id="more-139"></span></p>
<p>La idea es “decirle” a nuestro OpenLDAP el tipo de HASH (ejemplo: {MD5}) antes de donde va la contraseña, esta contraseña será el resultado de cifrar como BASE64 el BINARIO del hash MD5. osea… no es que vamos a cifrar nuestra contraseña en MD5 y después directamente vamos a cifrar ese resultado en BASE64. No vamos a cifrar en BASE64 directamente los hashes que nos den como resultado las funciones de PHP: md5() o sha(). ES IMPORTANTE pasar el primer HASH MD5 a binario con la función pack(&#8220;H*&#8221;, $hash_result), tanto md5() y sha() dan como resultado cadenas de textos hexadecimales las cuales serán transformadas en binarios y recien convertidas en BASE64.</p>
<p><em>base64_encode(pack(&#8216;H*&#8217;,md5($newuser_plaintext_password)));</em></p>
<p>A continuación paso el código para hacer éste tipo especial de cifrado para usarlo con OpenLDAP, la salida de éste codigo sería algo similar a esto: {md5}bdwy04RS4xMDGVi1n/H36Q==</p>
<p>Algunas advertencias finales a tener en cuenta:<br />
- todo esto no funciona con Active Directory donde las contraseñas son solo creadas usando conecciones SSL y los hashes es muy probable que trabajen de manera distinta.</p>
<p><em>$ds = ldap_connect($serverAddress);<br />
if ($ds) {<br />
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);</em></p>
<p><em>$r = ldap_bind($ds, $managerDN, $managerPassword);<br />
$ldaprecord['cn'] = $newuser_username;<br />
$ldaprecord['givenName'] = $newuser_firstname;<br />
$ldaprecord['sn'] = $newuser_surname;</em></p>
<p><em>$ldaprecord['objectclass'][0] = &#8220;person&#8221;;<br />
$ldaprecord['objectclass'][1] = &#8220;organizationalPerson&#8221;;<br />
$ldaprecord['objectclass'][2] = &#8220;inetOrgPerson&#8221;;<br />
$ldaprecord['mail'] = $newuser_email_address;<br />
$ldaprecord['telephoneNumber'] = $newuser_phone_number;</em></p>
<p><em>// aqui viene el truquito:<br />
$ldaprecord['userPassword'] = &#8216;{MD5}&#8217; . base64_encode(pack(&#8216;H*&#8217;,$newuser_md5hashed_password));</em></p>
<p><em>// Este seria el truco si tienen la contraseña en texto plano<br />
// entonces se pasaría a MD5, luego a binario y recien Base64:<br />
// $ldaprecord['userPassword'] = &#8216;{MD5}&#8217; .<br />
// base64_encode(pack(&#8216;H*&#8217;,md5($newuser_plaintext_password)));</em></p>
<p><em>$r = ldap_add($ds, $base_user_dn, $ldaprecord);<br />
} else { die &#8220;cannot connect to LDAP server at $serverAddress.&#8221;; }</em><br />
<strong><em></em></strong></p>
<p><strong><em>Credits:</em></strong><em><strong><br />
José Marin de la Fuente<br />
www.marindelafuente.com.ar</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marindelafuente.com.ar/agregar-usuarios-con-contrasena-con-hash-md5-hashed-md5-password-en-openldap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

