Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 350
  • Last Modified:

Encrypt string and decrypt string

Hi

i have value in edit box some i want to encrypt, and be able to decypt it again

Esk
0
esk
Asked:
esk
  • 4
  • 2
  • 2
  • +6
1 Solution
 
aubsCommented:
Why not just add an offset to each character in the edit box:

function encrypt(str: string):String;
var
  i: integer;
begin
  for i:= 1 to length(str) do
    str[i]:= chr(ord(str[i]) + 100);
  result:= str;
end;

function decrypt(str: string):String;
var
  i: integer;
begin
  for i:= 1 to length(str) do
    str[i]:= chr(ord(str[i]) - 100);
  result:= str;
end;

Here's another...

function EnDeCrypt(s:string): String;
                      var
                      i: integer;
                      begin
                        for i:= 1 to length(s) do
                        begin
                          if s[i]< '[' then //must be uppercase
                           s[i]:= chr(155 - ord(s[i]))
                          else
                           s[i]:= chr(219 - ord(s[i]));
                        end;
                        Result:= s;
                      end;

                      It can be used to encrypt and decrypt by simply swapping characters within the alphabet.
                      a to z,
                      b to y,
                      c to x,...
                      l to o,
                      m to n,
                      n to m,
                      o to l, etc. similarly for uppercase A to Z etc


                      155 = ASCII 'A' + ASCII 'Z'
                      219 = ASCII 'a' + ASCII 'z'

Aubs
0
 
JaymolCommented:
Esk : Have a look at my TEncrypt component...

http://www.freehomepages.com/secretdelphi/

(Suprised you didn't ask me about this in the 1st place!)

John.
0
 
edeyCommented:
Just how secure do want this to be?
Do you have to worry about leaving un-encrypted values in ram/on disk?

GL
Mike
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
intheCommented:
this was posted in another q some time ago. it is similar to aubs first comment :
using a random number up to 26 is used to offset each char. This way the string returned will always be readable, but much harder to decrypt because the offset is different every time.

You may want to alter the seed value, but there is no real advantage to this. MAKE SURE THE SEED IS THE SAME FOR ENCRYPTION AND DECRYTION!

function EncryptPassword(password: string): string;
var
i: integer;
begin
RandSeed:= 9999;
for i:= 1 to length(password) do
password[i]:= chr(ord(password[i]) + random(26));
Result:= Password;
end;

function DecryptPassword(s: string): string;
var
i: integer;
begin
s:='';
RandSeed:= 9999;
for i:= 1 to length(s) do
s[i]:= chr(ord(s[i]) - random(26));
Result:= s;
end;
0
 
EpsylonCommented:
The 'cryptlib' I mentioned before is not the right one. This one is:

http://www3.ewebcity.com/joep/cryptlib.zip
0
 
bryan7Commented:
you can also use random chars up to 255 and then pass the number to HEX and to string, that way it's always readable also, but is double lenght than original
0
 
TheNeilCommented:
esk,

It all depends what you want to do with the data. If you're going to encrypt the data into a file, and then decrypt it back when you read it out then there are better solutions than aubs. But if you actually want to encrypt the data as the user enters it then the code already supplied will do the job.

Bear in mind that aubs system isn't too complex of difficult to crack. Personally I'd go for a password overlay system. Basically it involves combining characters as ASCII values from a password. The encrypted text changes according to the password. It's not foolproof but is a little more advanced that what you've already been told.

If you want encryption and decryption routines for this then just ask

The Neil
0
 
ZifNabCommented:
you can also use  Microsofts CryptoAPI

http://www.DelphiZine.com/features/1999/02/di199902mb_f/di199902mb_f.asp

Regards, Zif.
0
 
eskAuthor Commented:
Jaymol, can you sent me demo at esk10000@hotmail.com

homesite did not work here!!!

Esk
0
 
eskAuthor Commented:
aubs, your functions won't work
0
 
eskAuthor Commented:
aubs, this works, my compiler was $%/%&
0
 
aubsCommented:
So does it work or does it not work?

Aubs
0
 
eskAuthor Commented:
It works

thanks
Esk
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 4
  • 2
  • 2
  • +6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now