crypto.getCiphers() Method in Node.js

The crypto.getCiphers() method returns an array containing names of all the supported cipher algorithms in Node.js. This method is useful for discovering what encryption algorithms are available on your system.

Syntax

crypto.getCiphers()

Parameters

This method takes no parameters as it simply returns a list of all available cipher algorithms.

Return Value

Returns an array of strings, where each string is the name of a supported cipher algorithm.

Basic Example

Here's how to get all available cipher algorithms:

// Importing the crypto module
const crypto = require('crypto');

// Getting all available cipher algorithms
const ciphers = crypto.getCiphers();

// Display total count
console.log(`Total cipher algorithms available: ${ciphers.length}`);

// Display first 10 algorithms
console.log('First 10 cipher algorithms:');
console.log(ciphers.slice(0, 10));
Total cipher algorithms available: 83
First 10 cipher algorithms:
[
  'aes-128-cbc',
  'aes-128-cbc-hmac-sha1',
  'aes-128-cbc-hmac-sha256',
  'aes-128-ccm',
  'aes-128-cfb',
  'aes-128-cfb1',
  'aes-128-cfb8',
  'aes-128-ctr',
  'aes-128-ecb',
  'aes-128-gcm'
]

Filtering Specific Algorithms

You can filter the results to find specific types of algorithms:

const crypto = require('crypto');

const allCiphers = crypto.getCiphers();

// Find all AES algorithms
const aesCiphers = allCiphers.filter(cipher => cipher.includes('aes'));
console.log('AES algorithms count:', aesCiphers.length);

// Find all AES-256 algorithms
const aes256 = allCiphers.filter(cipher => cipher.includes('aes-256'));
console.log('AES-256 algorithms:', aes256.slice(0, 5));
AES algorithms count: 39
AES-256 algorithms: [ 'aes-256-cbc', 'aes-256-cbc-hmac-sha1', 'aes-256-cbc-hmac-sha256', 'aes-256-ccm', 'aes-256-cfb' ]

Common Cipher Types

The returned array typically includes these popular cipher families:

Cipher Family Description Example
AES Advanced Encryption Standard aes-256-cbc
Blowfish Block cipher algorithm bf-cbc
Camellia Block cipher developed by Mitsubishi camellia-128-cbc
ChaCha20 Stream cipher chacha20

Practical Use Case

Check if a specific cipher algorithm is supported before using it:

const crypto = require('crypto');

function isCipherSupported(algorithmName) {
    const availableCiphers = crypto.getCiphers();
    return availableCiphers.includes(algorithmName);
}

// Test different algorithms
console.log('aes-256-gcm supported:', isCipherSupported('aes-256-gcm'));
console.log('unsupported-cipher supported:', isCipherSupported('unsupported-cipher'));
aes-256-gcm supported: true
unsupported-cipher supported: false

Conclusion

The crypto.getCiphers() method is essential for discovering available encryption algorithms in your Node.js environment. Use it to ensure compatibility before implementing specific cipher algorithms in your applications.

Updated on: 2026-03-15T23:19:00+05:30

330 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements