Title: RE: Encriptar Datos en DB2

Como bien os decía Sergio, lo tenéis disponible en el Infocenter de IBM. El link es:

<http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/db2/rbafzmst.pdf>


Con respecto al código es algo tan sencillo como esto, para añadir registros:

d Main            pr                  extpgm('PRUENC')  

d                               50a                     

d                               10a                     

d Main            pi                                    

d   Apellidos                   50a                     

d   Password                    10a                     

c/exec sql                                              

c+ set encryption password = :Password                  

c/end-exec                                              

c/exec sql                                              

c+ insert into encriptado                               

c+ values(encrypt_rc2(:Apellidos)

c/end-exec                                              

 /free                                                  

   *inlr=*on;       

   return;          

 /end-free          

La definición de la tabla sería esta:

CREATE TABLE ENCRIPTADO ( APELLIDOS CHARACTER (100) FOR BIT DATA NOT NULL DEFAULT)

A la hora de recuperar los registros, sería algo así:

d Main            pr                  extpgm('PRUENC')  

d                               50a                     

d                               10a                     

d Main            pi                                    

d   Apellidos                   50a                     

d   Password                    10a                     

c/exec sql                                              

c+ set encryption password = :Password                  

c/end-exec                                              

c/exec sql                                              

c+ select decrypt_char(apellidos) into :Apellidos from encriptado                                

c/end-exec                                              

 /free                                                  

   *inlr=*on;       

   return;          

 /end-free          

No os olvidéis en la definición del campo del valor FOR BIT DATA, puesto que si no lo hacéis así, no os permitirá recuperar los datos.

Espero que esto haya servido de ayuda.

Un saludo

Juan Carlos.

Responder a