Cakephp3のシェルを使えばいいと思いますよ。そうすれば画面側と共通のロジックが使えると思います。
サンプルコード書いてみたので参考にしてください。
src/Shell/PasswordShell.php
php
1<?php
2namespace App\Shell;
3
4use Cake\Auth\DefaultPasswordHasher;
5use Cake\Console\Shell;
6
7class PasswordShell extends Shell {
8
9 public function getOptionParser() {
10 $parser = parent::getOptionParser();
11 $parser->addArgument('password', ['required' => true, 'help' => 'パスワード']);
12 return $parser;
13 }
14
15
16 public function main() {
17 $password = $this->args[0];
18 debug($password);
19 debug((new DefaultPasswordHasher)->hash($password));
20 }
21}
以下のように実行するとハッシュ化されます。
shell
1bin/cake password hogehoge
同時にユーザIDを渡して、DBに保存すればいいと思いますよ。
※sha256とのことなので、WeakPasswordHasherを使わないとだめかもですね...
(追記)
どうしてもレガシーPHPで実現したいなら、Cakephpのコードを読めばロジックがわかると思います。
sha256は以下のコードのhashメソッドでやっているようです。
vendor/cakephp/cakephp/src/Utility/Security.php