diff --git a/core/core.console.services.yml b/core/core.console.services.yml
index 6f70991..70189a6 100644
--- a/core/core.console.services.yml
+++ b/core/core.console.services.yml
@@ -20,3 +20,9 @@ services:
     arguments: ['@console.bootstrap']
     tags:
       - { name: console.command }
+
+  console.command.hash_password:
+    class: Drupal\Core\Console\Command\HashPassword
+    arguments: ['@console.bootstrap']
+    tags:
+      - { name: console.command }
diff --git a/core/lib/Drupal/Core/Console/Command/HashPassword.php b/core/lib/Drupal/Core/Console/Command/HashPassword.php
new file mode 100644
index 0000000..7a5db71
--- /dev/null
+++ b/core/lib/Drupal/Core/Console/Command/HashPassword.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Core\Console\Command\HashPassword.
+ */
+
+namespace Drupal\Core\Console\Command;
+
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Hashes a password.
+ *
+ * @todo Use a hidden question helper once we've upgraded to Symfony 2.5.
+ */
+class HashPassword extends CommandBootstrapBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function configure() {
+    parent::configure();
+    $this
+      ->setName('drupal:hash-password')
+      ->setDescription('Hashes a password.')
+      ->addArgument('password', InputArgument::REQUIRED, 'Password');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function execute(InputInterface $input, OutputInterface $output) {
+    $kernel = $this->bootstrap->bootstrap($this, $input, $output);
+    if ($kernel) {
+      /** @var \Drupal\Core\Password\PasswordInterface $password_hasher */
+      $password_hasher = $kernel->getContainer()->get('password');
+      $output->writeln($password_hasher->hash($input->getArgument('password')));
+    }
+  }
+
+}
