source: 3thparty/jmessenger/src/nu/fw/jeti/util/Digest.java @ 3952

Revision 3952, 1.2 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #1710 - Adicao do codigo fonte java do componente jmessenger(jabberit_messenger)

  • Property svn:executable set to *
Line 
1/**
2 * @author Alexandre Correia - alexandrecorreia@celepar.pr.gov.br
3 * @ Calculo do hash para autenticacao Digest
4 */
5package nu.fw.jeti.util;
6
7import java.security.MessageDigest;
8import java.security.NoSuchAlgorithmException;
9
10public class Digest
11{
12        private byte[] gHash(String frase, String algoritmo)
13        {
14                try
15                {
16                        MessageDigest md = MessageDigest.getInstance(algoritmo);
17                        md.update(frase.getBytes());
18                        return md.digest();
19                }
20                catch (NoSuchAlgorithmException e)
21                {
22                        return null;
23                }
24        }
25       
26        private String stringHexa(byte[] bytes)
27        {
28                StringBuilder s = new StringBuilder();
29                for (int i = 0; i < bytes.length; i++)
30                {
31                        int parteAlta = ((bytes[i] >> 4) & 0xf) << 4;
32                        int parteBaixa = bytes[i] & 0xf;
33                        if (parteAlta == 0) s.append('0');
34                        s.append(Integer.toHexString(parteAlta | parteBaixa));
35                }
36               
37                return s.toString();
38        }
39
40        public String hashMD5(String nonce, String cnonce, String qop, String uri, String user, String password, String realm)
41        {
42                String HA1 = stringHexa(gHash( user + ":" + realm + ":" + password, "MD5"));
43                String nc = "00000001";
44                String HA2 = stringHexa(gHash(uri, "MD5"));
45                String DigestPROXY = HA1 + ":" + nonce + ":" + nc + ":" + cnonce + ":" + qop + ":" + HA2;
46
47                return stringHexa(gHash(DigestPROXY, "MD5"));
48        }
49}
Note: See TracBrowser for help on using the repository browser.