
programa para encriptar y desencriptar contraseñas
Publicado por juan (2 intervenciones) el 01/05/2014 20:56:23
Buenas tardes!!
tengo un programa que no puedo resolver, se trata de encriptar y desencriptar contraseñas.
el codigo es el siguiente.
------------------------------------------------------------------------------------------------------------------------------------------------------------
yo trate de resolverlo asi, pero me lanza un error en una linea de codigo.
esto es lo que trate de hacer es el programa completo y mi problema es en el metodo de desencriptar. Lo que esta subrayado es donde me marca el error. epero alguien pueda ayudarme. saludos
tengo un programa que no puedo resolver, se trata de encriptar y desencriptar contraseñas.
el codigo es el siguiente.
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
61
62
63
64
65
66
67
68
69
package md5;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import java.security.NoSuchAlgorithmException;
import javax.swing.*;
import java.security.MessageDigest;
import java.util.Arrays;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author linux
*/
public class Md5 {
public String get_md5(String CadenaOriginal){
String md5="";
try {
if (!CadenaOriginal.equalsIgnoreCase("")) {
MessageDigest md = MessageDigest.getInstance("MD5");
md.reset();
md.update(CadenaOriginal.getBytes());
byte bytes[] = md.digest();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(0xff & bytes[i]);
if (hex.length() == 1) {
sb.append('0');
}
sb.append(hex);
}
md5 = sb.toString();
}
} catch (NoSuchAlgorithmException e) {
md5 = "Error inesperado";
}
return md5;
}
public static void main(String args[]) {
Md5 obj = new Md5();
try {
JOptionPane.showMessageDialog(null, "La palbra encriptada es: "+obj.get_md5("Hola"));
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
yo trate de resolverlo asi, pero me lanza un error en una linea de codigo.
esto es lo que trate de hacer es el programa completo y mi problema es en el metodo de desencriptar. Lo que esta subrayado es donde me marca el error. epero alguien pueda ayudarme. saludos
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package md5;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import java.security.NoSuchAlgorithmException;
import javax.swing.*;
import java.security.MessageDigest;
import java.util.Arrays;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author linux
*/
public class Md5 {
public String get_md5(String CadenaOriginal){
String md5="";
try {
if (!CadenaOriginal.equalsIgnoreCase("")) {
MessageDigest md = MessageDigest.getInstance("MD5");
md.reset();
md.update(CadenaOriginal.getBytes());
byte bytes[] = md.digest();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(0xff & bytes[i]);
if (hex.length() == 1) {
sb.append('0');
}
sb.append(hex);
}
md5 = sb.toString();
}
} catch (NoSuchAlgorithmException e) {
md5 = "Error inesperado";
}
return md5;
}
public static String Desencriptar(String textoEncriptado) throws Exception {
String secretKey = "qualityinfosolutions"; //llave para desenciptar datos
String md5 = "";
try {
byte[] message = Base64.decode(md5.getBytes("utf-8"));
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] digestOfPassword = md.digest(secretKey.getBytes("utf-8"));
byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24);
SecretKey key = new SecretKeySpec(keyBytes, "DESede");
Cipher decipher = Cipher.getInstance("DESede");
decipher.init(Cipher.DECRYPT_MODE, key);
byte[] plainText = decipher.doFinal(message);
md5 = new String(plainText, "UTF-8");
} catch (Exception ex) {
}
return md5;
}
public static void main(String args[]) {
Md5 obj = new Md5();
try {
JOptionPane.showMessageDialog(null, "La palbra encriptada es: "+obj.get_md5("Hola"));
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
Valora esta pregunta


0