如何修改nextcloud分享链接密码?
- By : Will
- Category : Cloud storage
Cloud storage
1 前言
一个问题,一篇文章,一出故事。
最近在笔者需要通过更新nextCloud用户分享链接的密码,于是整理本章节。
该函数由我们部门的美女同事从nextcloud github的代码中把函数抽取出来,以便我们独立调用。
2 最佳实践
2.1 创建脚本
vim hasher.php
加入如下代码,
<?php
/**
* Description of Hasher
*/
class Hasher {
public static function hash(string $password) {
$options = [];
$options['threads'] = max(1, 1);
$options['memory_cost'] = max(65536, $options['threads'] * 8);
$options['time_cost'] = max(4, 1);
$options['cost'] = 10;
return 3 . '|' . password_hash($password, PASSWORD_ARGON2ID, $options);
}
}
// 检查是否传入了参数
if ($argc < 2) {
echo "请提供密码字符串。\r\n";
exit(1);
}
$password = $argv[1];
$encryptedPassword = Hasher::hash($password);
echo $encryptedPassword;
?>
2.2 测试脚本
php hasher.php "ul[u8Voo0lai"
可见如下输出,
3|$argon2id$v=19$m=65536,t=4,p=1$h7dYzvuBa2W9k0UVEZoyIw$vP2SF2xgAZecYigex30Ks4OCcKgTOgRllzr+MwUf4n0
2.3 更新nextcloud分享密码
假设链接如下,
https://nextcloud.cmdschool.org/index.php/s/JRiJEbtpzAryoDc
然后,我们根据token值将新的密码写入数据库,
UPDATE nextcloud.oc_share SET password='3|$argon2id$v=19$m=65536,t=4,p=1$h7dYzvuBa2W9k0UVEZoyIw$vP2SF2xgAZecYigex30Ks4OCcKgTOgRllzr+MwUf4n0' WHERE token = "JRiJEbtpzAryoDc";
然后,根据token值确认已经更新成功,
SELECT token, password FROM nextcloud.oc_share WHERE token = "JRiJEbtpzAryoDc";
可见如下显示,
token password JRiJEbtpzAryoDc 3|$argon2id$v=19$m=65536,t=4,p=1$h7dYzvuBa2W9k0UVEZoyIw$vP2SF2xgAZecYigex30Ks4OCcKgTOgRllzr+MwUf4n0
2.4 测试更新后的密码
打开连接,
https://nextcloud.cmdschool.org/index.php/s/JRiJEbtpzAryoDc
输入密码”ul[u8Voo0lai”如果验证通过即成功。
没有评论