您无法进行转换,因为Rijndael-256不是AES-256,并且OpenSSL扩展不附带Rijndael-256支持。
AES-256是具有256位(32字节)密钥的Rijndael-128。
不幸的是,您必须重新加密所有数据。
编辑:另外,您当前正在使用的方案存在一些问题:
- 它缺少身份验证(HMAC是在PHP中最简单的方法)
- 它缺少适当的填充(具有零字节的mcrypt填充;您需要像PKCS#5填充之类的东西),这是块模式加密安全所必需的。
- 它不是字节安全的(您正在使用
mb_substr()
)
好消息是,OpenSSL将自动为您执行PKCS#5填充,但是您应该走得更远,并使用像defuse/php-encryption这样的可靠加密库。



