Solved

ROT13 function & procedure

Posted on 2010-08-24
8
1,272 Views
Last Modified: 2012-05-10

I need a delphi 2010 function abd procedure for solving ROT13 using string and stringlist


something like


Tciphermode = (cmEncrypt, cmDecrypt)

function ROT13(AStr: String; cMode: TcipherMode): String;
begin
 //
 result:=
end;


procedure ROT13(Lines: TStringList; cMode: TcipherMode)
begin
 //
end;

thanks
0
Comment
Question by:Looking_4_Answers
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 8

Expert Comment

by:BdLm
ID: 33516184
are you looking for this code   http://www.linuxhilfen.org/c/c_aufsteiger_rot.html    converted to pascal ?
0
 
LVL 8

Expert Comment

by:BdLm
ID: 33516212
0
 
LVL 4

Expert Comment

by:bjove
ID: 33516391
Found something, hope it is what you need :)
function ROT13(AStr: String): String;

var

  i: integer;

  c: char;

begin

  for i := 1 to Length(AStr) do begin

    c := AStr[i];



    if (((c >= 'A') AND (c <= 'M')) OR ((c >= 'a') AND (c <= 'm'))) then

      c := chr(ord(c) + 13)

    else if (((c >= 'N') AND (c <= 'Z')) OR ((c >= 'n') AND (c <= 'z'))) then

      c := chr(ord(c) - 13);



    Result := Result + c;

  end;

end;

Open in new window

0
 

Author Comment

by:Looking_4_Answers
ID: 33516897
@bjove:

that works if you use the same function to encrypt and decrypt. I was looking for a function that you passed another parameter (Tciphermode)

also, a procedure that does the same, but uses a TSringList

your 25% maybe 30% there
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 4

Accepted Solution

by:
bjove earned 500 total points
ID: 33517018
Why do you need cMode param? Same function encrypts and decrypts.
procedure ROT13(AStrLst: TStringList);

var

  i, j: integer;

  c: char;

  AStr: string;

  s: string;

begin



  for i := 0 to AStrLst.Count - 1 do begin

    AStr := AStrLst[i];

    s := '';

    for j := 1 to Length(AStr) do begin

      c := AStr[j];



      if (((c >= 'A') AND (c <= 'M')) OR ((c >= 'a') AND (c <= 'm'))) then

        c := chr(ord(c) + 13)

      else if (((c >= 'N') AND (c <= 'Z')) OR ((c >= 'n') AND (c <= 'z'))) then

        c := chr(ord(c) - 13);



      s := s + c;

    end;

    AStrLst[i] := s;

  end;

end;

Open in new window

0
 
LVL 32

Expert Comment

by:ewangoya
ID: 33517336
@Looking_4_Answers

ROT13 works like the classic XOR ecyption/decryption. The same code works both ways so you dont need to specify in your code that you are either cyphering or decyphering
0
 

Author Comment

by:Looking_4_Answers
ID: 33517860
@ewangoya

but thats what i am looking for

i can google all the code that has been offered already here.

I am looking for way - if its possible, to encrypt, and decrypt
0
 
LVL 8

Expert Comment

by:BdLm
ID: 33518528
if you execute  rot13 function twice you get the original message back

use the rot13 code from   http://forum.delphi-treff.de/showthread.php?24859-Algorithmen-Rot13 

and make a button like


procedure TForm1.Rot13_ButtonClick(Sender: TObject);
begin
     MsgEdit.text := ROT13_DeCode(MsgEdit.text);
end;

it does nor make any sense a separate encrypt, and decrypt   function


0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…
Both in life and business – not all partnerships are created equal. As the demand for cloud services increases, so do the number of self-proclaimed cloud partners. Asking the right questions up front in the partnership, will enable both parties …

895 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now