Bonjour
Petite question sans doute simple : existe t'il des implémentations de md5sum en standard pour Java5 ?
Je cherche à réaliser en "pûr Java" un md5sum de fichiers.
Merci d'avance
@++
Bonjour
Petite question sans doute simple : existe t'il des implémentations de md5sum en standard pour Java5 ?
Je cherche à réaliser en "pûr Java" un md5sum de fichiers.
Merci d'avance
@++
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code :tagcode: ni le tag :resolu:
Je ne répond à aucune question technique par MP.
Salut,
L'algorithme MD5 est géré par la classe MessageDigest, et tu as même un code tout fait dans les sources : http://www.developpez.net/forums/sho...2&postcount=24
Bon courage
a++
Je sais pas trop ce que tu entends pas md5sum, mais je vais tenter une réponse.
Si tu veux juste crypter en md5, c'est tout à fait possible :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 String source = "XYZ"; String encoded = ""; MessageDigest md = null; try { md = MessageDigest.getInstance("MD5"); md.update(source.getBytes()); encoded = new String(md.digest()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } finally{ md.reset(); }
Fantastique !
Merci les amis
@++
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code :tagcode: ni le tag :resolu:
Je ne répond à aucune question technique par MP.
Sur base du superbe travail de Razgriz, voici une petite application qui affiche la somme MD5 d'un fichier :
Si ça peut aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.io.*; public class MD5Sum { private String md5sum; public String getMD5Sum(){ return md5sum; } public void calculate(File f) throws IOException, NoSuchAlgorithmException{ if(f.exists() && f.canRead()){ FileInputStream fis = new FileInputStream(f.getAbsolutePath()); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); int ch; while((ch = fis.read()) != -1) buffer.write(ch); fis.close(); MessageDigest md = MessageDigest.getInstance("MD5"); md.reset(); md.update(buffer.toByteArray()); byte[] hash = md.digest(); for (int i = 0; i < hash.length; i++) { int v = hash[i] & 0xFF; if(v < 16) md5sum += "0"; md5sum += Integer.toString(v, 16).toLowerCase(); } } else{ throw new IOException("Can not read file or does not exist !"); } } public MD5Sum(){ md5sum = new String(); } public static void main(String[]args){ String md5sum; MD5Sum md5 = new MD5Sum(); File f = new File(args[0]); try{ md5.calculate(f); md5sum = md5.getMD5Sum(); System.out.println(md5sum+" "+args[0]); } catch(IOException ioe){ ioe.printStackTrace(); } catch(NoSuchAlgorithmException nsal){ nsal.printStackTrace(); } } }
@++
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code :tagcode: ni le tag :resolu:
Je ne répond à aucune question technique par MP.
Attention de toujours bien convertir les données non directement binaires (par exemple un String) en byte[] avec l'encodage "UTF-8" comme expliqué ici.
![]()
Partager