如何修改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 . "\r\n"; ?>
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”如果验证通过即成功。
没有评论