我如何在 laravel 中使用 AES-128、AES-256 标准以外的其他密码?

How can i use in laravel other cipher other than the standards AES-128, AES-256?

我想使用 AES-128 / AES-256 以外的其他密码,这些密码被标准硬编码到 \vendor\laravel\lumen-framework\config\app.php 中,甚至 EncrypterMcryptEncrypter 也使用它们。

我必须进行更改才能使用其他受支持的 ciphers/modes,提供的文档没有任何信息..

phpinfo()

mcrypt support  enabled
mcrypt_filter support   enabled
Version 2.5.8
Api No  20021217
Supported ciphers   cast-128 gost rijndael-128 twofish cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes arcfour
Supported modes cbc cfb ctr ecb ncfb nofb ofb stream

lumen version 5.1.*

您需要创建自己的 Illuminate\Contracts\Encryption\Encrypter

实现

为您的实施创建一个新的服务提供商。您可以按照 Illuminate\Encryption\EncryptionServiceProvider 作为宽松指南。

app/config.php 中的服务提供商 Illuminate\Encryption\EncryptionServiceProvider::class, 替换为您刚刚创建的服务提供商。

如果您没有更改 singleton() 函数中的第一个参数并将其保留为 encrypter,您应该只需要这样做。如果您确实修改了它,您还需要创建一个新外观并更新 app/config.php 中的 aliases 数组。