SHA512和MD5是哈希值,而不是加密算法.按照设计,它们是不可逆的.
转换这些值的唯一方法是等待每个用户登录,根据现有的SHA512哈希验证其密码,并使用MD5重新输入其输入.这与密码哈希更新为更安全标准的方式相反.
但请,请不要这样做. MD5无可救药地被打破了.您将为您的用户提供从SHA512恢复到MD5 的巨大损失.找到一种方法来使用较新版本的软件.
¹据zaph在评论中指出,"重组"过于简单化,根据您的面板实际实施方式,今天可能会使用不安全的密码存储.
为了提供合理的安全性,每个密码还必须具有唯一的随机盐(这可以防止像彩虹表这样的事情),并且每个哈希必须迭代足够多次才能使粗暴强制变得不切实际.随着计算机变得越来越强大,必须增加迭代次数.今天,通常迭代数十或数十万次.
密码学是惊人难以得到的权利.不要试图手动遵循所有最佳实践,而是使用在适当抽象级别运行的库和函数,并进行安全性审计.像bcrypt这样的算法(通过PHP的内置password_hash函数,它当前是默认算法)将是一个不错的选择.