Joined: 30 Nov 2013 Posts: 917 Location: The Universe
#3 (Just a thought) "Encrypt" by compressing as an additional step. No one, but no one, can make any sense out of the output of TRSMAIN/AMATERSE except by expanding the "encrypted" data set. Granted TRSMAIN is terribly slow, but ...
Another advantage is the "encrypted" data set can be transmitted quite easily, especially if the data is mostly non-text.
//*=====================================================================
//* PSEUDO-ENCRYPTION
//*=====================================================================
//SORTTRAN EXEC PGM=SORT
//*
//SYSOUT DD SYSOUT=*
//*
//SORTIN DD *
TRAN
Use this subparameter to change the case of EBCDIC letters from
lowercase to uppercase or vice-versa, translate ASCII characters to
EBCDIC ones or vice-versa, transform data to printable hexadecimal
(0-9 or A-F) or binary (0 or 1), or vice-versa, or translate data
based on an alternative collating sequence (ALTSEQ) table in
effect. Specify this subparameter immediately after the position P
and the length L of the field to be converted. Specify p,l,tran for
both fixed-length records and the fixed-length portion of variable
length records. Specify p,tran for the variable-length portion of
variable-length records. Starting in position P of the input record,
for a length of L, each byte will be converted as per specification.
TRAN
USE THIS SUBPARAMETER TO CHANGE THE CASE OF EBCDIC LETTERS FROM
LOWERCASE TO UPPERCASE OR VICE-VERSA, TRANSLATE ASCII CHARACTERS TO
EBCDIC ONES OR VICE-VERSA, TRANSFORM DATA TO PRINTABLE HEXADECIMAL
(0-9 OR A-F) OR BINARY (0 OR 1), OR VICE-VERSA, OR TRANSLATE DATA
BASED ON AN ALTERNATIVE COLLATING SEQUENCE (ALTSEQ) TABLE IN
EFFECT. SPECIFY THIS SUBPARAMETER IMMEDIATELY AFTER THE POSITION P
AND THE LENGTH L OF THE FIELD TO BE CONVERTED. SPECIFY P,L,TRAN FOR
BOTH FIXED-LENGTH RECORDS AND THE FIXED-LENGTH PORTION OF VARIABLE
LENGTH RECORDS. SPECIFY P,TRAN FOR THE VARIABLE-LENGTH PORTION OF
VARIABLE-LENGTH RECORDS. STARTING IN POSITION P OF THE INPUT RECORD,
FOR A LENGTH OF L, EACH BYTE WILL BE CONVERTED AS PER SPECIFICATION.
********************************* TOP OF DATA **********************************
TRAN
Use this subparameter to change the case of EBCDIC letters from
lowercase to uppercase or vice-versa, translate ASCII characters to
EBCDIC ones or vice-versa, transform data to printable hexadecimal
(0-9 or A-F) or binary (0 or 1), or vice-versa, or translate data
based on an alternative collating sequence (ALTSEQ) table in
effect. Specify this subparameter immediately after the position P
and the length L of the field to be converted. Specify p,l,tran for
both fixed-length records and the fixed-length portion of variable
length records. Specify p,tran for the variable-length portion of
variable-length records. Starting in position P of the input record,
for a length of L, each byte will be converted as per specification.
TRAN
USE THIS SUBPARAMETER TO CHANGE THE CASE OF EBCDIC LETTERS FROM
LOWERCASE TO UPPERCASE OR VICE-VERSA, TRANSLATE ASCII CHARACTERS TO
EBCDIC ONES OR VICE-VERSA, TRANSFORM DATA TO PRINTABLE HEXADECIMAL
(0-9 OR A-F) OR BINARY (0 OR 1), OR VICE-VERSA, OR TRANSLATE DATA
BASED ON AN ALTERNATIVE COLLATING SEQUENCE (ALTSEQ) TABLE IN
EFFECT. SPECIFY THIS SUBPARAMETER IMMEDIATELY AFTER THE POSITION P
AND THE LENGTH L OF THE FIELD TO BE CONVERTED. SPECIFY P,L,TRAN FOR
BOTH FIXED-LENGTH RECORDS AND THE FIXED-LENGTH PORTION OF VARIABLE
LENGTH RECORDS. SPECIFY P,TRAN FOR THE VARIABLE-LENGTH PORTION OF
VARIABLE-LENGTH RECORDS. STARTING IN POSITION P OF THE INPUT RECORD,
FOR A LENGTH OF L, EACH BYTE WILL BE CONVERTED AS PER SPECIFICATION.
******************************** BOTTOM OF DATA ********************************
********************************* TOP OF DATA **********************************
U BO
Vtf ui t tvcqb bnfuf up dibohf uif dbtf pg FCDE D mfuuf t g pn
mpxf dbtf up vqqf dbtf p w df/wf tb% u botmbuf BTD dib bduf t up
FCDE D poft p w df/wf tb% u botgp n ebub up q oubcmf ifybefd nbm
+1/³ p B/G; p c ob z +1 p 2;% p w df/wf tb% p u botmbuf ebub
cbtfe po bo bmuf obu wf dpmmbu oh tfrvfodf +BMUTFR; ubcmf o
fggfdu< Tqfd gz ui t tvcqb bnfuf nnfe bufmz bguf uif qpt u po Q
boe uif mfohui M pg uif g fme up cf dpowf ufe< Tqfd gz q%m%u bo gp
cpui g yfe/mfohui fdp et boe uif g yfe/mfohui qp u po pg wb bcmf
mfohui fdp et< Tqfd gz q%u bo gp uif wb bcmf/mfohui qp u po pg
wb bcmf/mfohui fdp et< Tub u oh o qpt u po Q pg uif oqvu fdp e%
gp b mfohui pg M% fbdi czuf x mm cf dpowf ufe bt qf tqfd g dbu po<
U BO
VTF UI T TVCQB BNFUF UP DIBOHF UIF DBTF PG FCDE D MFUUF T G PN
MPXF DBTF UP VQQF DBTF P W DF/WF TB% U BOTMBUF BTD DIB BDUF T UP
FCDE D POFT P W DF/WF TB% U BOTGP N EBUB UP Q OUBCMF IFYBEFD NBM
+1/³ P B/G; P C OB Z +1 P 2;% P W DF/WF TB% P U BOTMBUF EBUB
CBTFE PO BO BMUF OBU WF DPMMBU OH TFRVFODF +BMUTFR; UBCMF O
FGGFDU< TQFD GZ UI T TVCQB BNFUF NNFE BUFMZ BGUF UIF QPT U PO Q
BOE UIF MFOHUI M PG UIF G FME UP CF DPOWF UFE< TQFD GZ Q%M%U BO GP
CPUI G YFE/MFOHUI FDP ET BOE UIF G YFE/MFOHUI QP U PO PG WB BCMF
MFOHUI FDP ET< TQFD GZ Q%U BO GP UIF WB BCMF/MFOHUI QP U PO PG
WB BCMF/MFOHUI FDP ET< TUB U OH O QPT U PO Q PG UIF OQVU FDP E%
GP B MFOHUI PG M% FBDI CZUF X MM CF DPOWF UFE BT QF TQFD G DBU PO<
******************************** BOTTOM OF DATA ********************************
//*=====================================================================
//* PSEUDO-ENCRYPTION
//*=====================================================================
//BINTRAN EXEC PGM=SORT
//*
//SYSOUT DD SYSOUT=*
//*
//SORTIN DD *
TRAN
Use this subparameter to change the case of EBCDIC letters from
lowercase to uppercase or vice-versa, translate ASCII characters to
EBCDIC ones or vice-versa, transform data to printable hexadecimal
(0-9 or A-F) or binary (0 or 1), or vice-versa, or translate data
based on an alternative collating sequence (ALTSEQ) table in
effect. Specify this subparameter immediately after the position P
and the length L of the field to be converted. Specify p,l,tran for
both fixed-length records and the fixed-length portion of variable
length records. Specify p,tran for the variable-length portion of
variable-length records. Starting in position P of the input record,
for a length of L, each byte will be converted as per specification.
TRAN
USE THIS SUBPARAMETER TO CHANGE THE CASE OF EBCDIC LETTERS FROM
LOWERCASE TO UPPERCASE OR VICE-VERSA, TRANSLATE ASCII CHARACTERS TO
EBCDIC ONES OR VICE-VERSA, TRANSFORM DATA TO PRINTABLE HEXADECIMAL
(0-9 OR A-F) OR BINARY (0 OR 1), OR VICE-VERSA, OR TRANSLATE DATA
BASED ON AN ALTERNATIVE COLLATING SEQUENCE (ALTSEQ) TABLE IN
EFFECT. SPECIFY THIS SUBPARAMETER IMMEDIATELY AFTER THE POSITION P
AND THE LENGTH L OF THE FIELD TO BE CONVERTED. SPECIFY P,L,TRAN FOR
BOTH FIXED-LENGTH RECORDS AND THE FIXED-LENGTH PORTION OF VARIABLE
LENGTH RECORDS. SPECIFY P,TRAN FOR THE VARIABLE-LENGTH PORTION OF
VARIABLE-LENGTH RECORDS. STARTING IN POSITION P OF THE INPUT RECORD,
FOR A LENGTH OF L, EACH BYTE WILL BE CONVERTED AS PER SPECIFICATION.