home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / arexx / misc_arexx / crypt2.rexx < prev    next >
OS/2 REXX Batch file  |  1997-03-30  |  2KB  |  183 lines

  1. /* 
  2.     Warp's Silly crypter v1.0 by Fini 'Warp' Alring ©Thu Feb 27 22:42:06 1997
  3.  
  4.     Used to encrypt ASCII strings, quite safe for ordinary privacy...
  5.  
  6.     Drawback:   Data takes up five times as normal... b'coz i only use numbers to encrypt...
  7.  
  8.      WARNING! - Do not use this to encrypt important confindential data... 
  9.     Use PGP instead. 
  10.     
  11.     
  12.     
  13.     If you use this method, the remember the Credits!
  14.     
  15.     
  16.     
  17.     Password must be between 1000 and 999999999
  18.     
  19.     
  20. */
  21.  
  22.     parse arg str
  23.  
  24.  
  25. if length(str)=0 then do
  26.  
  27.     say 'Usage: rx Crypt <String to encrypt>'
  28.     exit
  29.  
  30. end
  31.  
  32.  
  33. say 'Encrypt password:'
  34. pull pass
  35.  
  36. pass = pass - (pass*2)
  37.  
  38.     a = encrypt(str,pass)
  39.     
  40.     say ''
  41.  
  42.     say a
  43.  
  44.  
  45. say 'Decrypt password:'
  46. parse pull pass
  47.  
  48. pass = pass - (pass*2)
  49.  
  50.     say ''
  51.     say decrypt(a,pass)
  52.  
  53.  
  54.  
  55.  
  56.  
  57. exit
  58.  
  59. /* funcs() */
  60.  
  61.  
  62.  
  63.  
  64. encrypt: Procedure
  65. Strin = '-CODE-' || arg(1)
  66.  
  67.  
  68.  
  69. seed = arg(2)
  70. seedl=length(seed)
  71.  
  72.     str=''
  73.  
  74.     do i = 1 to length(strIn)
  75.     
  76.         c=substr(strIn,i,1)
  77.     
  78.         seed = seed  + 1
  79.  
  80.         s = c2d(c)+seed+i
  81.  
  82.         s =  s-(s*2)
  83.  
  84.         str = str || zero(s,seedl-1)  
  85.  
  86.     end
  87.  
  88.  
  89.  
  90. /*
  91.     str = zero(seed,4) || str
  92. */    
  93.  
  94.     strOut = reverse(str)
  95.  
  96. return strOut
  97.  
  98.  
  99.  
  100.  
  101. decrypt: Procedure
  102. Strin = reverse(arg(1))
  103.  
  104. signal on syntax
  105.  
  106.  
  107. seed = arg(2)
  108.  
  109. seedl = length(seed)
  110.  
  111.  
  112.  
  113.     strPos = 1
  114.     str = ''
  115.  
  116.     
  117.     ii = 1
  118.  
  119.     do i = strPos to length(strIn) by seedl
  120.     
  121.         seed = seed + 1
  122.     
  123.         c=deZero(substr(strIn,i,seedl))
  124.         
  125.         c = c - (c * 2)
  126.         
  127.         str = str || d2c(( c-(seed+ii) )) 
  128.         
  129.         ii = ii + 1
  130.         
  131.     end
  132.  
  133.     strOut = str
  134.  
  135.     if substr(strOut,1,6) ~= '-CODE-' then do
  136.         say 'Denied! - ' || strout
  137.         signal syntax
  138.     end
  139.  
  140. return substr(strOut,7,length(strout)-6)
  141.  
  142. syntax:
  143.  
  144. say 'Wrong!' 
  145. exit
  146. return 0
  147.  
  148.  
  149.  
  150. zero: Procedure
  151.     str = arg(1)
  152.     n = arg(2)
  153.     strout = ''
  154.     
  155.     do i = length(str) to n
  156.     
  157.         strout = strout || '0'
  158.     
  159.     end
  160.     
  161.     strout = strout || str 
  162.  
  163. return strout
  164.  
  165.  
  166.  
  167. deZero: Procedure
  168.     strIn = arg(1)
  169.     strOut = arg(1)
  170.  
  171.     do c = 1 to length(strIn)
  172.  
  173.         if substr(strIn,c,1) = '0' then do
  174.         
  175.             strOut = substr(strIn,c+1,length(strIn))
  176.         
  177.         end
  178.         else return strOut
  179.  
  180.     end
  181.  
  182. return -1
  183.