Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

     ********** =======================================================
********** Sample routine to Decrypt a passed in Hex value       
********** using the supplied key and return the unencrypted     
********** value.                                                
********** =======================================================
SUBROUTINE DECRYPT ((#DKEY16 *Received)(#DHEX32 *Received) (#DVAL16 *Returned))
********** Key to be used for the decryption. This must be the   
********** same key that was used for the encryption.            
DEFINE     #DKEY16 *char 16                                      
DEFINE     FIELD(#DHEX32) TYPE(*CHAR) LENGTH(32) DESC('Encrypted value in hex')
DEFINE     FIELD(#DVAL16) TYPE(*CHAR) LENGTH(16) DESC('Decrypted value returned')
DEFINE     FIELD(#DLEN) TYPE(*DEC) LENGTH(5) DECIMALS(0)          
CHANGE     FIELD(#DLEN) TO(16)                                    
**********
**********
********** Use DECRYPT BIF to decrypt character #HEX32 of length 
********** #DLEN using #DKEY16 to return decrypted value,#DVAL16  
**********                                                        
USE        BUILTIN(DECRYPT) WITH_ARGS(#HEX32 #DLEN #DKEY16 YES) TO_GET(#DVAL16)
ENDROUTINE

パスワードを暗号化(ENCRYPT)して、次に復号化(DECRYPT)します。 

     DEFINE     FIELD(#PASSWORD) TYPE(*CHAR) LENGTH(10)                
DEFINE     FIELD(#TEXT) TYPE(*CHAR) LENGTH(16)                   
DEFINE     FIELD(#LENGTH) TYPE(*DEC) LENGTH(11) DECIMALS(0)      
DEFINE     FIELD(#KEY) TYPE(*CHAR) LENGTH(16)                    
DEFINE     FIELD(#RETCODE) TYPE(*CHAR) LENGTH(2)                 
DEFINE     FIELD(#ENCRYPTED) TYPE(*CHAR) LENGTH(16)              
DEFINE     FIELD(#DECRYPTED) TYPE(*CHAR) LENGTH(16)              
**********
********** Encrypt password with key                             
CHANGE     #TEXT #PASSWORD                                       
CHANGE     #LENGTH 16                                            
CHANGE     #KEY 'AXG12345lj0gtUMX'                               
USE        BUILTIN(ENCRYPT) WITH_ARGS(#TEXT #LENGTH #KEY) TO_GET(#ENCRYPTED #RETCODE)
**********
********** Decrypt password with same key as provided for encryption
CHANGE     #LENGTH 16                                            
USE        BUILTIN(DECRYPT) WITH_ARGS(#ENCRYPTED #LENGTH #KEY) TO_GET(#DECRYPTED #RETCODE)
**********