折雨的天空

新浪微薄腾讯微薄

最新碎语:最近霉到了住。哎。。。

您的位置:折雨的天空 >php开发> FileZilla Server的本地密码加密算法

FileZilla Server的本地密码加密算法

配置文件中有

<Option Name="Pass">25E547DF9AF0C8D28C7E56F35E5C90F91F6C9A6503B8106FD364A59D442A1B039A44270517327E34B1A5713882FA4474D46C3DC350B1A67FAD4CB76DE45A3B2D</Option>
            <Option Name="Salt">uxwg90jboayaif7mw2tzd6vr31q35ypjcrnfh41vpodn8umhstklxbicq0k2eegz</Option>

两行代码,第一行是密码,第二行是随机的64位可见ASCII字符

密码校验时,是把密码和salt连接后,进行SHA512的散列值计算


别人写的PHP版本的算法,仅供参考,FileZilla官方建议不要使用PHP的shuffle和array_rand函数,因为不够随机。


官方回复原文:


Do not use PHP's shuffle function, it does not use cryptographically secure random numbers.

Do not use PHP's array_rand function, it does not use cryptographically secure random numbers.

以下为别人分享用户密码生成的PHP代码:


$seed = str_split("!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~");
shuffle($seed);
$rand = '';

foreach (array_rand($seed, 64) as $k) {
        $rand .= $seed[$k];
}

$passwd = "your_password";
    
$salt_raw = utf8_encode($rand);
$salt_html = htmlentities($salt_raw);
$passwd = utf8_encode($passwd);
$salted_password = $passwd . $salt_raw;
$encoded_password = strtoupper(hash('SHA512', $salted_password)); 

// $salt_html goes into <Option Name="Salt">
// $encoded_password goes into <Option Name="Pass">

原文:https://forum.filezilla-project.org/viewtopic.php?f=6&t=39934&p=148394&hilit=salt#p148394

------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------

转载请注明本文标题和链接:《FileZilla Server的本地密码加密算法

奖励一下

取消

分享不易,烦请有多多打赏,如您也困难,点击右边关闭即可!

扫码支持
扫码打赏,5元,10元,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

-秒后自动关闭,如已打赏,或者不愿打赏,请点击右上角关闭图标。

发表评论

路人甲 表情
看不清楚?点图切换