# DES Class

## Definition

Represents the base class for the Data Encryption Standard (DES) algorithm from which all DES implementations must derive.

`public ref class DES abstract : System::Security::Cryptography::SymmetricAlgorithm`

```
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class DES : System.Security.Cryptography.SymmetricAlgorithm
```

```
type DES = class
inherit SymmetricAlgorithm
```

```
Public MustInherit Class DES
Inherits SymmetricAlgorithm
```

- Inheritance

- Derived

- Attributes

## Remarks

This algorithm supports a key length of 64 bits.

Note

A newer symmetric encryption algorithm, Advanced Encryption Standard (AES), is available. Consider using the Aes class instead of the DES class. Use DES only for compatibility with legacy applications and data.

## Constructors

DES() |
Initializes a new instance of the DES class. |

## Fields

BlockSizeValue |
Represents the block size, in bits, of the cryptographic operation. (Inherited from SymmetricAlgorithm) |

FeedbackSizeValue |
Represents the feedback size, in bits, of the cryptographic operation. (Inherited from SymmetricAlgorithm) |

IVValue |
Represents the initialization vector (IV) for the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

KeySizeValue |
Represents the size, in bits, of the secret key used by the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

KeyValue |
Represents the secret key for the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

LegalBlockSizesValue |
Specifies the block sizes, in bits, that are supported by the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

LegalKeySizesValue |
Specifies the key sizes, in bits, that are supported by the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

ModeValue |
Represents the cipher mode used in the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

PaddingValue |
Represents the padding mode used in the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

## Properties

BlockSize |
Gets or sets the block size, in bits, of the cryptographic operation. (Inherited from SymmetricAlgorithm) |

FeedbackSize |
Gets or sets the feedback size, in bits, of the cryptographic operation for the Cipher Feedback (CFB) and Output Feedback (OFB) cipher modes. (Inherited from SymmetricAlgorithm) |

IV |
Gets or sets the initialization vector (IV) for the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

Key |
Gets or sets the secret key for the Data Encryption Standard (DES) algorithm. |

KeySize |
Gets or sets the size, in bits, of the secret key used by the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

LegalBlockSizes |
Gets the block sizes, in bits, that are supported by the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

LegalKeySizes |
Gets the key sizes, in bits, that are supported by the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

Mode |
Gets or sets the mode for operation of the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

Padding |
Gets or sets the padding mode used in the symmetric algorithm. (Inherited from SymmetricAlgorithm) |

## Methods

Clear() |
Releases all resources used by the SymmetricAlgorithm class. (Inherited from SymmetricAlgorithm) |

Create() |
Creates an instance of a cryptographic object to perform the Data Encryption Standard (DES) algorithm. |

Create(String) |
Creates an instance of a cryptographic object to perform the specified implementation of the Data Encryption Standard (DES) algorithm. |

CreateDecryptor() |
Creates a symmetric decryptor object with the current Key property and initialization vector (IV). (Inherited from SymmetricAlgorithm) |

CreateDecryptor(Byte[], Byte[]) |
When overridden in a derived class, creates a symmetric decryptor object with the specified Key property and initialization vector (IV). (Inherited from SymmetricAlgorithm) |

CreateEncryptor() |
Creates a symmetric encryptor object with the current Key property and initialization vector (IV). (Inherited from SymmetricAlgorithm) |

CreateEncryptor(Byte[], Byte[]) |
When overridden in a derived class, creates a symmetric encryptor object with the specified Key property and initialization vector (IV). (Inherited from SymmetricAlgorithm) |

Dispose() |
Releases all resources used by the current instance of the SymmetricAlgorithm class. (Inherited from SymmetricAlgorithm) |

Dispose(Boolean) |
Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources. (Inherited from SymmetricAlgorithm) |

Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |

GenerateIV() |
When overridden in a derived class, generates a random initialization vector (IV) to use for the algorithm. (Inherited from SymmetricAlgorithm) |

GenerateKey() |
When overridden in a derived class, generates a random key (Key) to use for the algorithm. (Inherited from SymmetricAlgorithm) |

GetHashCode() |
Serves as the default hash function. (Inherited from Object) |

GetType() |
Gets the Type of the current instance. (Inherited from Object) |

IsSemiWeakKey(Byte[]) |
Determines whether the specified key is semi-weak. |

IsWeakKey(Byte[]) |
Determines whether the specified key is weak. |

MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |

ToString() |
Returns a string that represents the current object. (Inherited from Object) |

ValidKeySize(Int32) |
Determines whether the specified key size is valid for the current algorithm. (Inherited from SymmetricAlgorithm) |

## Explicit Interface Implementations

IDisposable.Dispose() |
Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources. (Inherited from SymmetricAlgorithm) |