Revision 1429,
1.2 KB
checked in by alexandrecorreia, 15 years ago
(diff) |
Ticket #588 - Conexão através do proxy ( Squid ) , utilizando mode Digest e Basic.
|
-
Property svn:mime-type set to
text/plain
|
Rev | Line | |
---|
[1429] | 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.