<PackageReference Include="BouncyCastle.Cryptography" Version="2.4.0" />

DesKeyGenerator

using Org.BouncyCastle.Crypto.Parameters; using System; namespace Org.BouncyCastle.Crypto.Generators { public class DesKeyGenerator : CipherKeyGenerator { public DesKeyGenerator() { } internal DesKeyGenerator(int defaultStrength) : base(defaultStrength) { } protected override void EngineInit(KeyGenerationParameters parameters) { base.EngineInit(parameters); if (strength == 0 || strength == 7) strength = 8; else if (strength != 8) { throw new ArgumentException("DES key must be " + 64.ToString() + " bits long."); } } protected override byte[] EngineGenerateKey() { byte[] array = new byte[8]; do { random.NextBytes(array); DesParameters.SetOddParity(array); } while (DesParameters.IsWeakKey(array, 0)); return array; } } }