1

私は z/OS と REXX を研究し、MY.DATA.SET (PUBLIC、PRIVATE) から公開鍵と秘密鍵を取得し、メッセージ (MSG) を暗号化するコードを作成しました。

"ALLOC FI(pubkey) DA('MY.DATA.SET(PUBLIC)') SHR REUSE"   
"ALLOC FI(prikey) DA('MY.DATA.SET(PRIVATE)') SHR REUSE"  
"ALLOC FI(msgin)  DA(‘MY.DATA.SET(MSG)') SHR REUSE"  
"ALLOC FI(msgout) DA(*) SHR REUSE"                                      
"EXECIO 1 DISKR pubkey (STEM pub. FINIS"                                
"EXECIO 1 DISKR prikey (STEM pri. FINIS"                                
"EXECIO * DISKR msgin  (STEM msg. FINIS"                                
"EXECIO 0 DISKW msgout (STEM enc_msg. OPEN"                             
enc_msg.1 = pub.1                                                       
"EXECIO 1 DISKW msgout (STEM enc_msg. "                                 
do i=1 to msg.0                                                     
   do j=1 to length(msg.i)                                          
    letter.j = substr(msg.i,j,1)                                    
    encrypt.j = translate(letter.j,pri.1,pub.1)                     
   end                                                              
call write_encrypted_line                                           
end                                                                 
"EXECIO 0 DISKW msgout (FINIS"                                      
"FREE FI(pubkey)"                                                   
"FREE FI(prikey)"                                                   
"FREE FI(msgin)"                                                    
"FREE FI(msgout)"                                                   
exit 0                                                              
write_encrypted_line:                                               
charout = ''                                                        
newchar = ''                                                        
  do j=1 to length(msg.i)                                           
   newchar = encrypt.j                                              
   charout = charout||newchar                                       
  end                                                               
enc_msg.1 = charout                                                 
"EXECIO 1 DISKW msgout (STEM enc_msg. "                             
return                                                              

そして、もちろん同じキーペアを使用して、上記の暗号化された結果(結果はMSGENという名前で保存されます)を通常のテキストに復号化できるDEsryptingコードに転送したいと思います。助けてください:暗号化コードを復号化するには、暗号化コードで何を変更すればよいですか? この線

"ALLOC FI(msgin)  DA(‘MY.DATA.SET(MSGEN)') SHR REUSE"

既に変更されています (MSG->MSGEN)

すべてのヘルプと応答に感謝します!

4

3 に答える 3

-1

これは IBM Master the Mainframe 2016 からのものです。コンテスト用のトレーニング システムです。2016年のコンテストはすでに終了しています。

1行目の出力に関するものはコメントアウトできます。出力の最初の行をスキップするために、do i=2 から msg.0 への I 変数を高くして、私の "2" のようにしました。

公開鍵は既に MSG 入力にあるため、必要なのは pub.1 = msg.1 だけです。

Public Key の ALLOC、FREE、EXECIO を削除またはコメントアウトします。

それをしなくても機能しますが、完全なタスクではありません。

于 2017-06-13T23:52:51.260 に答える