Похоже, вы неправильно понимаете, как работает команда mv
. В параметрах нет to
, поэтому оно интерпретируется как имя файла, но такого файла не существует.
man 1 mv
SYNOPSIS
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
Нет, извините, вы не можете напрямую использовать старый хэш для создания нового.
Во-первых, вы говорите о наличии хэша SHA -256, а затем использовании его для вычисления хэша на основе SHA -512, что невозможно без инвертирования хэша SHA -256. Во-вторых, даже если бы вы использовали алгоритм шифрования, основанный на том же хэше($5$
для шифрования на основе SHA -256 ), в значительной степени первый шаг в вашей ссылке по-прежнему «Начните с вычисления альтернативной суммы, sha512 (пароль + соль + пароль )", и для этого вам нужен открытый текстовый пароль.
Чтобы сделать переход от одного хэша пароля к другому рабочим, можно либо заставить пользователей обновлять свои пароли каким-либо образом, что позволит вам генерировать новые хэши; или, более точно, измените процедуру входа в систему так, чтобы она принимала вход со старым хэшем, если новый не существует, и одновременно генерировали новый хэш. Таким образом, вы можете в конечном итоге удалить старые хэши, за исключением учетных записей, которые забыты.
Есть способы сделать это. :Возможно, вам не нужно компилировать собственный код.
Загляните в PAM. Это модульный менеджер аутентификации. Он используется во многих Gnu/Linux. Вероятно, есть модуль, который позволит вам использовать существующие хэши.