Encrypting and Decrypting with Twofish

This article shows how to encrypt and decrypt data using the Twofish component of IPWorks Encrypt.

Date Entered: 11/12/2014    Last Updated: 11/12/2014

IPWorks Encrypt makes it very easy to encrypt and decrypt data. This article will detail the process of performing Twofish encryption and decryption.

Twofish Encryption

Twofish Encryption is as simple as selecting a KeyPassword and specifying the data to be encrypted. Please see the following example:

Twofish twofish = new Twofish(); twofish.KeyPassword = "MyKeyPassword"; twofish.InputFile = "C:\\Path\\to\\UnEncryptedFile.txt"; twofish.OutputFile = "C:\\Path\\to\\EncryptedFile.dat"; twofish.Encrypt();

Twofish Decryption

Twofish Decryption is just as simple as Twofish Encryption. All that is needed is the encrypted data and the KeyPassword that was used during the encryption.

Twofish twofish = new Twofish(); twofish.KeyPassword = "MyKeyPassword"; twofish.InputFile = "C:\\Path\\to\\EncryptedFile.dat"; twofish.OutputFile = "C:\\Path\\to\\DecryptedFile.txt"; twofish.Decrypt();

Changing the Key Size

The Twofish Encryption algorithm supports keys from 128 bits to 256 bits in size with an 8 bit increment (e.g., 128, 136, 144, etc). You can specify the key size to be used for Encryption and Decryption via the "KeySize" configuration setting as detailed below.

twofish.Config("KeySize=192"); //Set Key Size to 192 bits.

Note: The KeySize configuration option is only valid when KeyPassword is set and the component automatically generates the Key and IV values.

Configuring Twofish to use Hex-encoded strings

The Twofish component can be instructed to use Hex-encoded strings for its encryption and decryption operations. When the UseHex property is set to true, the Encrypt operation will Hex-encode the encrypted data. Similarly, if the UseHex property is set to true, the Decrypt operation will assume that the encrypted data has been Hex-encoded.

Additional Options

The Twofish component supports a variety of options to offer more control over the encryption and decryption mechanisms used. Options include the ability to specify the Cipher Mode and Padding Mode used, as well as specifying the Key and IV values. Please see the IPWorks Encrypt help documentation for more information on these options.


We appreciate your feedback.  If you have any questions, comments, or suggestions about this entry please contact our support team at kb@nsoftware.com.