Revision 3952,
1.2 KB
checked in by alexandrecorreia, 14 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 | */ |
---|
5 | package nu.fw.jeti.util; |
---|
6 | |
---|
7 | import java.security.MessageDigest; |
---|
8 | import java.security.NoSuchAlgorithmException; |
---|
9 | |
---|
10 | public 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.