The PC1 Encryption Algorithm
with 128 or 256-bit keys

Alexander Pukall 1991
alexandermail@hotmail.com


Code free for all, even commercial applications.
Crypto Source code for C, C++, Delphi, Java, Perl, Visual Basic, TCL, PIC Microchip processor, Texas Instrument TI-89 TI-90 TI-9x, 6809 microprocessor Assembler.


CAUTION : To download the .zip sources you must use SAVE AS function of your browser do not click directly on the link because it will not open the source correctly

The ZIP archive for PC1 encryption algorithm in C language (128-bit keys) ( input = BINARY FILE, output = BINARY FILE ).

The C file for PC1 encryption algorithm in C language (128-bit keys) ( input = BINARY FILE, output = BINARY FILE ).

The ZIP archive for PC1 encryption algorithm in C language (256-bit keys) ( input = BINARY FILE, output = BINARY FILE ).

The ZIP archive for PC1 encryption algorithm in C language (256-bit keys) ( input = BINARY FILE, output = TEXT ).

The ZIP archive for PC1 encryption algorithm in Borland C++ language (256-bit keys) graphical interface ( input = TEXT, output = TEXT ).

The ZIP archive for PC1 encryption algorithm in C++ language (128-bit keys) command line interface ( input = TEXT, output = TEXT ).

The ZIP archive for PC1 encryption algorithm in CBuilder 5 language (256-bit keys) ( input = TEXT, output = TEXT ).

How to encrypt passwords in C language

Frequently asked questions


The ZIP archive for PC1 encryption algorithm in JAVA language (128-bit keys) by Robert Neild ( input = BINARY FILE, output = BINARY FILE ).

The ZIP archive for PC1 encryption algorithm in TCL language (256-bit keys) ( input = TEXT, output = TEXT ).

The ZIP archive for PC1 encryption algorithm in PHP language (128-bit keys) ( input = TEXT, output = TEXT ).

The PY file for PC1 encryption algorithm in Python language (128-bit keys) by Huey Jiang ( input = TEXT, output = TEXT ).

The ZIP archive for PC1 encryption algorithm in Delphi language (128-bit keys) translated from C to Pascal by Peter Torris ( input =TEXT, output = TEXT ).

The ZIP archive for PC1 encryption algorithm in Perl language (128-bit keys) ( input = BINARY FILE, output = TEXT or input = TEXT, output = TEXT ).

The ZIP archive for PC1 encryption algorithm in Visual Basic 6.0 (128-bit keys) ( input = TEXT, output = TEXT ).

The ZIP archive for PC1 encryption algorithm in Visual Basic 6.0 (128-bit keys) ( input = BINARY, output = BINARY ).

The ZIP archive for PC1 crypt algorithm in VB 6.0 ACTIVE X control (128-bit keys)
by Dan "Wraith" Hetrick


The ZIP archive for PC1 crypt algorithm in POWERBASIC (128-bit keys)

The ZIP archive for PC1 crypt algorithm in PUREBASIC (128-bit keys or more) by Guillaume Saumure

The ZIP archive for Encrypted Notepad in POWERBASIC (128-bit keys) (input = TEXT, output = BINARY FILE)

The ZIP archive for Encrypted Notepad in POWERBASIC (128-bit keys) (input = TEXT, output = TEXT FILE)


The ZIP archive PC1 for Microchip PIC Microcontroller 16F627, 16F627A, 16F628, 16F628A, 16F648A, 16F72, 16F73, 16F74, 16F76, 16F77, 16F818, 16F819, 16F87, 16F870, 16F871, 16F872, 16F873, 16F873A, 16F874, 16F874A, 16F876, 16F876A, 16F877, 16F877A, 16F88 (128-bit keys)

The ZIP archive for PC1 crypt algorithm for 6809 processor (80-bit keys)

The ZIP archive for PC1 crypt algorithm for Texas Instrument TI-89 TI-90 TI-9x (80-bit keys)


The PC1 cipher uses a 128 or 256-bit key.
It's a stream cipher with a retroaction function.

Tested with Turbo C 2.0 for DOS
and Microsoft Visual C++ 5.0 for Win 32
Delphi 2.0
Perl 5.0
Visual Basic 4.0 32 bits mode
Microchip PIC