什么是phpMyAdmin中的Blowfish密钥?

33

关于设置config.inc.php,官方phpMyAdmin文档如下所述

$cfg['blowfish_secret'] = 'theExampleWrites16ValuesHere';  // use here a value of your choice

什么是河豚密码?我该如何生成或选择一个值?

7个回答

26

只需使用您喜欢的任意字符和/或数字即可。它是一个将独特于您的phpMyAdmin实例和使用的值。


6
根据文档,建议使用32位的密钥长度。(链接:https://wiki.archlinux.org/index.php/phpMyAdmin#Add_blowfish_secret_passphrase)如果您使用的字符串太短,在某些版本的phpmyadmin上可能会显示错误消息。 - mxro
2
有趣的是,如果我输入超过32个字符,PHP模块就会在FreeBSD上崩溃并显示“总线错误”。当然,少于32个字符会触发“Blowfish密钥太短”的错误。 - Gwyneth Llewelyn
@GwynethLlewelyn 使用哪个版本的PHP和phpMyAdmin?我使用的是PHP 7.3.rc6和phpMyAdmin 4.8.3,我的不止32个字符,并且没有任何问题。 - Dave
PhpMyAdmin Blowfish生成器 - Pathros

4

这篇文档介绍了phpMyAdmin中的Blowfish Secret。

"cookie" auth_type使用AES算法对密码进行加密。如果您使用“cookie” auth_type,请输入一个随机的32位或更长的密码,它将被AES算法内部使用,不会提示您输入该密码。

secret应为32个字符长。使用较短的密码将导致加密cookie的安全性降低,使用更长的密码则不会造成任何危害。

因此,您可以使用任何32个或更长的字符来完成此操作。尽管文档说较长的密码不会造成任何危害,但它似乎期望一个恰好32个字符的密码。

您可以使用:

$ openssl rand -base64 22 

使用任何其他随机字符串生成器来生成一个32个字符长的随机密钥。并像以下示例中一样将其用作值:

$cfg['blow_secret'] = '7yRxkscr/SB4Sb729H7HdnbNqZxJOQ==';

3
请前往phpMyadmin目录并打开配置文件>>/phpMyadmin/config.inc.php。
找到>>$cfg ['blowfish_secret'] ='' / 你必须填写此内容以进行cookie身份验证! /
输入一个字符串,长度不得小于32个字符。{您可以包含数字、字母和特殊字符}。保存并重新加载页面(//yourdomainname.*/phpmyadmin),然后重新登录。这样应该就能解决错误了。
参考:https://wiki.archlinux.org/index.php/PhpMyAdmin#Add_blowfish_secret_passphrase 感谢与问候

3
如果您有可用的PHP,可以将以下内容添加到一个shell脚本中以构建phpMyAdmin安装:
export SECRET=`php -r 'echo base64_encode(random_bytes(24));'`
echo "\$cfg['blowfish_secret'] = '$SECRET';" \
    >> /path/to/phpmyadmin/config.inc.php

3

请前往 /var/lib/phpmyadmin/blowfish_secret.inc.php 文件,并添加一些字符以使其长度为32,例如:

$cfg['blow_secret'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

保存文件并刷新phpMyAdmin。


在Debian 9.6 + Nginx上,我也必须使用chown命令更改所有权:chown -R nginx:nginx /var/lib/phpmyadmin - Slavik

1
/usr/share/phpmyadmin/libraries/vendor_config.php 文件中,配置目录变量可能为空或缺少尾随斜杠,请将其更改为:
define('CONFIG_DIR', '/etc/phpmyadmin/'); 

需要在/usr/share/phpmyadmin/libraries/vendor_config.php中正确设置对此临时目录的权限。这对我有帮助。define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');

如果您在PhpMyAdmin中缺少“用户”选项卡,那是因为权限不足。在使用root权限登录时,从mysql控制台运行GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;(替换为您自己的管理员用户名)。


0

帮助不设置文件权限的用户。

/config.inc.php 文件必须设置为 chmod 755 才能被接受。不幸的是,一些磁盘和挂载的文件系统无法接受 chmod 命令,因此该文件必须保持为“示例”/config.sample.inc.php。

您可以通过在 /libraries/config.default.php 中设置所有配置来解决此问题。他们说您不应编辑该文件,但在我的情况下这是唯一的选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接