• EnglishSpanishGermanFrenchPolishChinese (Traditional)


EnglishSpanishGermanFrenchPolishChinese (Traditional)

Operating systems, scripting, PowerShell and security

Operating systems, software development, scripting, PowerShell tips, network and security

Menú principal
  • Categorías
  • Cursos
  • Libro de PowerShell
  • Lo mejor
  • Lo último
  • Proyectos
  • Contactar
Ir al contenido

Firmar un mensaje y comprobar que se ha firmado correctamente en Java

Java
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
import java.security.*;
 
public class Firmar {
public static void main(String[] args) {
try {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA");
// Inicia keyGen
SecureRandom numero = SecureRandom.getInstance("SHA1PRNG");
keyGen.initialize(1024, numero);
// Se crea el par de claves
KeyPair par = keyGen.generateKeyPair();
PrivateKey clavepriv = par.getPrivate();
PublicKey clavepub = par.getPublic();
// Firmar con clave privada
Signature dsa = Signature.getInstance("SHA1withDSA");
dsa.initSign(clavepriv);
String mensaje = "Mensaje para firmar";
dsa.update(mensaje.getBytes());
byte[] firma = dsa.sign(); // MENSAJE FIRMADO
// Verificar con clave pública
Signature verificadsa = Signature.getInstance("SHA1withDSA");
verificadsa.initVerify(clavepub);
verificadsa.update(mensaje.getBytes());
boolean check = verificadsa.verify(firma);
if (check)
System.out.println("Firma correcta");
else
System.out.println("Firma incorrecta");
} catch (NoSuchAlgorithmException el) {
el.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (SignatureException e) {
e.printStackTrace();
}
}
}

Publicado el día 12 de febrero de 2021

CATEGORÍAS

Java, Seguridad

ETIQUETAS

Java, Jesús Niño, Jesús Niño Camazón, System.out.println

MÁS

  • Ejecutar un programa desde un lenguaje de programación
  • Socket SSL en Java
  • Cifrar y descifrar con AES Rijndael de 256 y modo de operación de unidad de cifrado ECB desde PowerShell
  • Usar XML:DB API para ejecutar una consulta de base de datos con XQuery en el servidor eXist-db
  • Cifrar y descifrar con RSA desde Java (generando clave privada y clave pública)
  • Usar XML:DB API para ejecutar una consulta de base de datos con XPath en el servidor eXist-db