[Back to ENCRYPT SWAG index]  [Back to Main SWAG index]  [Original]

unit Crypt32;
{
*************************************************************************
* Name:					Crypt32.Pas				  																		*
* Description:	32 bits encode/decode module			  										*
*								2^96 variants it is very high to try hack								*
*	Purpose:			Good for encrypting passwors and text										*
*	Security:			avoid use StartKey less than 256												*
*								if it use only for internal use you may use default 		*
*								key, but MODIFY unit before compiling										*
* Call:					Encrypted := Encrypt(InString,StartKey,MultKey,AddKey)	*
*								Decrypted := Decrypt(InString,StartKey)		  						*
* Parameters:		InString	= long string (max 2 GB) that need to encrypt	*
*														decrypt	  																	*
*								MultKey		= MultKey key			              							*
*								AddKey		= Second key			              							*
*								StartKey	= Third key			              								*
*								(posible use defaults from interface)			  						*
* Return:				OutString	= result string			  												*
* Editor:				Besr viewed with Tab stops = 2, Courier new							*
* Started:			01.08.1996					  																	*
* Revision:			22.05.1997 - ver.2.01 converted from Delphi 1						*
*								and made all keys as parameters, before only start key	*
* Platform:			Delphi 2.0, 3.0 				  															*
* 							work in Delphi 1.0, 2^48 variants, 0..255 strings				*
* Author:				Anatoly Podgoretsky				  														*
* 							Base alghoritm from Borland				  										*
* Address:			Vahe 4-31, Johvi, Estonia, EE2045, tel. 61-142    			*
*								kvk@estpak.ee					  																*
* Status:				Freeware, but any sponsor help will be appreciated here	*
*								need to buy books, shareware products, tools etc				*
*************************************************************************
* Modified:     Supports Delphi 1.0 & 2.0                         			*
*               Overflow checking removed                         			*
* By:           Martin Djernæs                                    			*
* e-mail:       djernaes@einstein.ot.dk                           			*
* web:          einstein.ot.dk/~djernaes                          			*
*************************************************************************
}
interface

const
  StartKey	= 981;  	{Start default key}
  MultKey	  = 12674;	{Mult default key}
  AddKey	  = 35891;	{Add default key}

function Encrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;
function Decrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;

implementation

{$R-}
{$Q-}
{*******************************************************
 * Standard Encryption algorithm - Copied from Borland *
 *******************************************************}
function Encrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;
var
  I : Byte;
begin
  Result := '';
  for I := 1 to Length(InString) do
  begin
    Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
    StartKey := (Byte(Result[I]) + StartKey) * MultKey + AddKey;
  end;
end;
{*******************************************************
 * Standard Decryption algorithm - Copied from Borland *
 *******************************************************}
function Decrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;
var
  I : Byte;
begin
  Result := '';
  for I := 1 to Length(InString) do
  begin
    Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
    StartKey := (Byte(InString[I]) + StartKey) * MultKey + AddKey;
  end;
end;
{$R+}
{$Q+}

end.



[Back to ENCRYPT SWAG index]  [Back to Main SWAG index]  [Original]