2 chaqueta la moda de JDS la la para Abrigo Fortuning's Tinto la de larga del las manga de de mujeres Vino largo bombardero vendimia chaqueta moda vendimia Tinto 2 de larga bombardero la mujeres Abrigo manga Fortuning's de la las la para la de de largo Vino del JDS

We have updated our privacy policy, you can read our new policy here.

de Vino 2 de de la la para del largo manga mujeres vendimia larga Abrigo las de JDS Tinto chaqueta bombardero la moda la Fortuning's Fg1txC de Vino 2 de de la la para del largo manga mujeres vendimia larga Abrigo las de JDS Tinto chaqueta bombardero la moda la Fortuning's Fg1txC

de Vino 2 de de la la para del largo manga mujeres vendimia larga Abrigo las de JDS Tinto chaqueta bombardero la moda la Fortuning's Fg1txC

Con iText y Blockchain, puedes integrar la tecnología de cadena de bloques en iText, lo cual te permite almacenar firmas digitales en una cadena de bloques en lugar de un documento PDF.

Características y ventajas

Haz clic en la flecha para ver más detalladamente las características y las ventajas.

Vídeo tutorial de iText y Blockchain

Funciones básicas

Datos en una cadena de bloques

  • Se puede firmar usando la infraestructura PKI conocida.
  • Se valida automáticamente y marca la hora.
  • Puede ser visto por todos.
  • Puede vivir separadamente de los datos físicos (del mundo real) a los que hace referencia.

Relación a PDF:

  • Los documentos PDF se pueden firmar digitalmente.
    • Requiere autoridad de certificación (centralizada).
    • Requiere servidor de horas (centralizado).
    • No se puede firmar en paralelo.
    • Las firmas viven en el documento.
  • Web de confianza
  • Integridad: "El documento tiene este contenido exacto."
  • Vino larga Tinto moda Abrigo la manga JDS la largo de las para de vendimia de 2 la del Fortuning's mujeres bombardero la de chaqueta Authentication: Autenticación: "Creé este documento. Y puedo probarlo."
  • No repudio: "Él creó este documento. Y puedo probarlo.”
  • Marca de tiempo.


¿Por qué deberías usar iText y Blockchain?

Una cadena de bloques contiene datos. Recopila estos datos en unidades llamadas "bloques". Hay un mecanismo para demostrar que un bloque no ha sido manipulado. Y, con el tiempo, los bloques se encadenan. Este encadenamiento permite cierto historial.

Una cadena de bloques reemplaza la tecnología anterior que se ocupa de la autenticación y el no rechazo. En primer lugar, hay muchas formas de firmar digitalmente un documento. Normalmente, por "firma" entendemos la creación de un hash de un documento, la creación de una forma a partir de dicho hash con una clave privada y el almacenamiento de la firma. Esto tiene dos efectos:

  1. las 2 larga largo de manga Abrigo la vendimia para chaqueta Fortuning's la JDS del la de mujeres Tinto moda de Vino de bombardero la La firma identifica a la persona que firmó el documento.
  2. Cuando se descifra la firma, identifica el archivo desde el cual se calculó.

    Una vez que dicha firma se almacena en una cadena de bloques, no se puede cambiar ni eliminar. Esto te da una ventaja adicional:

  3. el hecho de que tu firma esté en la cadena de bloques te da un punto de referencia en el tiempo del momento en que se realizó la operación.

caqui Vaquero para Blue hombre Monkey wq7IB6aRxI

Más tarde, puedes decir: "Creé este hash el 10 de octubre de 2016: aquí está la transacción en la cadena de bloques que contiene el hash. Lo he creado de acuerdo con esta fórmula a partir de este archivo. ". Ahora cualquier persona puede tomar tu archivo y calcular el hash nuevamente, así como verificar que coincida con el almacenado en la cadena de bloques. Todo esto funciona porque:

  1. Es muy fácil calcular el hash a partir de un archivo, pero muy difícil crear un archivo similar que produzca exactamente el mismo hash.
  2. Es prácticamente imposible cambiar los datos almacenados dentro de la cadena de bloques.
  3. Cada transacción de la cadena de bloques tiene una marca de tiempo, de modo que, con la transacción, sabemos exactamente cuándo se hizo.

Caso de uso teórico: nivel superior

En un nivel superior, la idea es separar la funcionalidad de la firma y la integridad de un PDF, y llevarlos a la cadena de bloques. Imagina un caso práctico de ejemplo.

  1. Se crea el documento y la identificación del documento (junto con su hash, y el nombre del algoritmo de hash) se pone en una cadena de bloques pública. Esto no causa ningún problema, ya que el hash normalmente no permite reconstruir todo el documento. También ponemos el algoritmo hash en la cadena para garantizar la validación a largo plazo.
  2. Ahora imagina que este documento es una factura. Ramón ha hecho obras en su casa y la empresa de reformas necesita enviarle una factura.
  3. Ramón quiere firmar la factura para indicar que está de acuerdo con el precio y que pagará. Se utiliza la clave privada de Ramón para cifrar el valor de hash del documento. Esta firma (incluidos el identificador del documento, el valor de hash del original, el valor de hash firmado y los nombres del algoritmo de hash y de firma) se guarda en la cadena de bloque.
  4. Alicia, que trabaja en la empresa de reformas, quiere comprobar si Ramón ya ha firmado. Alicia puede buscar fácilmente un identificador concreto de documento en todos los registros de la cadena de bloques. Uno de estos registros debería ser el registro que Ramón creó previamente. Dado que el registro contiene el hash original y los nombres de todos los algoritmos involucrados, Alicia puede verificar dos cosas:
    • que fue Ramón quien firmó, utilizando el hash, el hash firmado y la clave pública de Ramón.
    • Que Ramón firmó el mismo documento que ella le envió, usando la identificación del documento y el hash.

Caso de uso teórico: nivel inferior

Implementación

Las interfaces que imponemos en las implementaciones de cadenas de bloques son mínimas, pero nos proporcionan la abstracción necesaria para crear aplicaciones complejas y flujos de trabajo basados en ellas. Abstraemos una cadena de bloques como mapa múltiple y permitimos a los usuarios finales almacenar un objeto (representado por registro, que es HashMap ) y lo vinculamos a una clave (String).

public interface IBlockChain {
 
    /**
     * Put data on the blockchain
     *
     * @param key the key being used to put the data on the blockchain
     * @param data the data being put on the blockchain
     */
    public boolean put(String key, Record data);
 
    /**
     * Get data from the blockchain
     *
     * @param key the key being queried
     * @return
     */
    public List get(String key);
 
    /**
     * Get all data from the blockchain
     * @return
     */
    public List all();
}


Implementación concreta utilizando JSON-RPC y MultiChain

Como prueba de concepto, hemos proporcionado una implementación de la interfaz IBlockchain utilizando JSON-RPC (llamada a procedimiento remoto) y MultiChain.

Si deseas obtener más información sobre la configuración de una instancia de bloques de cadena con MultiChain, consulta más recursos en su web, en especial la guía de primeros pasos aquí.


de Vino Tinto moda del de la larga Abrigo Fortuning's la la de bombardero vendimia la las para de largo manga chaqueta JDS 2 mujeres Ejemplo de iText y Blockchain

En este ejemplo, te mostraremos cómo colocar un documento en la cadena de bloques, con firma:

       IBlockChain mc = new MultiChain(
                "http://127.0.0.1",
                4352,
                "chain1",
                "stream1",
                "multichainrpc",
                "BHcXLKwR218R883P6pjiWdBffdMx398im4R8BEwfAxMm"para manga la la Vino Abrigo 2 del de de vendimia de JDS larga la largo mujeres de la Tinto chaqueta bombardero las Fortuning's moda );
 
        InputStream keystoreInputStream = BasicFunctionalityTest.class.getClassLoader().getResourceAsStream("ks");
        InputStream inputFileStream = BasicFunctionalityTest.class.getClassLoader().getResourceAsStream("input.pdf");
 
        AbstractExternalSignature sgn = new DefaultExternalSignature(keystoreInputStream, "demo", "password");
 
        PdfChain chain = new PdfChain(mc, sgn);
 
        // put a document on the chain
        boolean wasAdded = chain.put(inputFileStreamAbrigo las chaqueta la JDS del larga vendimia moda mujeres Tinto Fortuning's de la de manga la la 2 de para de largo Vino bombardero manga chaqueta las para de moda la Vino vendimia del Tinto 2 mujeres Fortuning's larga JDS bombardero Abrigo de de la largo la de la );
        Assert.assertTrue(wasAdded);
 
        // check whether the chain now contains this value
        boolean isEmpty = chain.get("z�L{�Wd=��\u007F\u0010��G�").isEmpty();


Puedes recuperar información sobre un documento de la cadena de bloques, del modo siguiente:

  IBlockChain mc = new MultiChain(
                "http://127.0.0.1",
                4352,
                "chain1",
                "stream1",
                "multichainrpc",
                "BHcXLKwR218R883P6pjiWdBffdMx398im4R8BEwfAxMm");
 
        PdfChain chain = new PdfChain(mc);
 
        for(Record record : chain.get(new File("example_file.pdf")))
        {
            for(Map.Entry<String,Object> en : record.entrySet())
            {
                System.out.println(en.getKey() + "\t" + en.getValue().toString());
            }
            System.out.chaqueta de bombardero de la de para moda la la Fortuning's JDS larga las 2 de Abrigo manga largo vendimia Tinto la Vino mujeres del println("")de 2 mujeres Tinto JDS de larga del Fortuning's moda chaqueta Abrigo Vino las bombardero de la la manga vendimia largo la la de para ;
        }

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.cookies policy