← Volver a publicaciones

MD5 en Java (2)

Este realmente me pareció el más óptimo para crear un resumen MD5. Lo encontré en www.gravatar.com.

<br /><span class="line-number"> 1</span> <span class="keyword-directive">import</span> java.io.UnsupportedEncodingException;<br /><br /><span class="line-number"> 2</span> <span class="keyword-directive">import</span> java.security.MessageDigest;<br /><span class="line-number"> 3</span> <span class="keyword-directive">import</span> java.security.NoSuchAlgorithmException;<br /><span class="line-number"> 4</span> <br /><span class="line-number"> 5</span> <span class="keyword-directive">public</span> <span class="keyword-directive">class</span> MD5Util {<br /><br /><span class="line-number"> 6</span> <br /><span class="line-number"> 7</span>     <span class="keyword-directive">public</span> <span class="keyword-directive">static</span> String hex(<span class="keyword-directive">byte</span>[] array) {<br /><span class="line-number"> 8</span>         StringBuffer sb = <span class="keyword-directive">new</span> StringBuffer();<br /><br /><span class="line-number"> 9</span>         <span class="keyword-directive">for</span> (<span class="keyword-directive">int</span> i = 0; i < array.length; ++i) {<br /><span class="line-number">10</span>             sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1, 3));<br /><span class="line-number">11</span>         }<br /><br /><span class="line-number">12</span>         <span class="keyword-directive">return</span> sb.toString();<br /><span class="line-number">13</span>     }<br /><span class="line-number">14</span> <br /><span class="line-number">15</span>     <span class="keyword-directive">public</span> <span class="keyword-directive">static</span> String md5Hex(String message) {<br /><br /><span class="line-number">16</span>         <span class="keyword-directive">try</span> {<br /><span class="line-number">17</span>             MessageDigest md =<br /><span class="line-number">18</span>                     MessageDigest.getInstance(<span class="character">"</span><span class="character">MD5</span><span class="character">"</span>);<br /><span class="line-number">19</span>             <span class="keyword-directive">return</span> hex(md.digest(message.getBytes(<span class="character">"</span><span class="character">CP1252</span><span class="character">"</span>)));<br /><br /><span class="line-number">20</span>         } <span class="keyword-directive">catch</span> (NoSuchAlgorithmException e) {<br /><span class="line-number">21</span>         } <span class="keyword-directive">catch</span> (UnsupportedEncodingException e) {<br /><span class="line-number">22</span>         }<br /><span class="line-number">23</span>         <span class="keyword-directive">return</span> <span class="keyword-directive">null</span>;<br /><br /><span class="line-number">24</span>     }<br /><span class="line-number">25</span> }<br /><span class="line-number">26</span> <br /><span class="line-number">27</span> <br />