duzhuo's-blog

学无止境

关于 column

在Linux中查看数据文本时总会出现可读性低的问题(比如 /etc/passwd),本文将介绍一个非常实用的工具叫做 column,它可以帮助我们将文本数据以整齐的列格式输出。

column 命令来自包含大量工具的软件包 util-linux,其中的工具涵盖了系统管理、文件操作以及硬件监控多个方面。

阅读全文 »

以下内容来自于科技爱好者周刊(第 327 期):没有链接的互联网

没有链接的互联网

你能想象吗,没有链接的互联网是什么样?

不用想了,这正在变成现实。

2017年,脸书(Facebook)出台了一项政策:只要帖子里面有(外部)链接,就会减少这个帖子的曝光。

也就是说,只要你贴了链接,别人就(几乎)看不见你的帖子了。这样做是为了防止用户跳出脸书,也为了防止用户为其他网站引流。

所以,你现在访问脸书,就会看到一种奇特的做法:大家发帖都没有链接,有些帖子甚至只是一句话的图片(下图),真正的链接放在帖子的置顶评论里面。

后来,其他的互联网平台纷纷跟进,限制链接。

阅读全文 »

CORS(跨源资源共享)?

以下内容引用自 mdn web docs

跨源资源共享CORS,或通俗地译为跨域资源共享)是一种基于 HTTP 头的机制,该机制通过允许服务器标示除了它自己以外的其他(域、协议或端口),使得浏览器允许这些源访问加载自己的资源。跨源资源共享还通过一种机制来检查服务器是否会允许要发送的真实请求,该机制通过浏览器发起一个到服务器托管的跨源资源的“预检”请求。在预检中,浏览器发送的头中标示有 HTTP 方法和真实请求中会用到的头。

举例:在 http://localhost:8000 的网页上使用 fetch()https://sm.ms/api/v2/ 这个图床的api接口发送请求即会产生CORS问题。

阅读全文 »

分页?

  • 显著提高查询速度,每次只处理一小部分数据减少了数据库的负担。
  • 简化数据展示,能让用户方便地浏览和查找所需信息。

用户界面展示

使用 HTTP GET 方法来获取分页的数据,其中page为数据页索引size为数据页大小:

/products?page={page}&size={size}

以表 products 为例

其中返回的数据的应该包含:全部商品数量,总页数,当前是第几页,当前页的全部产品数据。

服务端与数据库交互逻辑

代码片段以 express + MongoDB 为例:

  • 服务端提取出 query 中的page和size
阅读全文 »

设置方法

  • root用户
1
2
echo exit 101 > /usr/sbin/policy-rc.d
chmod +x /usr/sbin/policy-rc.d
  • 其他有sudo权限的用户
1
2
echo exit 101 | sudo tee /usr/sbin/policy-rc.d
sudo chmod +x /usr/sbin/policy-rc.d
  • 以安装vsftpd为例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
root@myLaptop:~# echo exit 101 > /usr/sbin/policy-rc.d
chmod +x /usr/sbin/policy-rc.d
root@myLaptop:~# apt install vsftpd

将要安装:
vsftpd

摘要:
升级:0,安装:1,卸载:0,不升级:9
下载大小:142 kB
所需的空间:352 kB / 131 GB 可用

获取:1 https://mirrors.tuna.tsinghua.edu.cn/debian sid/main amd64 vsftpd amd64 3.0.3-13.1 [142 kB]
已下载 142 kB,耗时 0秒 (289 kB/s)
正在预设定软件包 ...
正在选中未选择的软件包 vsftpd。
(正在读取数据库 ... 系统当前共安装有 799342 个文件和目录。)
准备解压 .../vsftpd_3.0.3-13.1_amd64.deb ...
正在解压 vsftpd (3.0.3-13.1) ...
正在设置 vsftpd (3.0.3-13.1) ...
Created symlink '/etc/systemd/system/multi-user.target.wants/vsftpd.service''
/usr/lib/systemd/system/vsftpd.service'.
/usr/lib/tmpfiles.d/vsftpd.conf:1: Line references path below legacy directory /
var/run/, updating /var/run/vsftpd/empty → /run/vsftpd/empty; please update the
tmpfiles.d/ drop-in file accordingly.
invoke-rc.d: policy-rc.d denied execution of start.
正在处理用于 man-db (2.13.0-1) 的触发器 ...
Scanning processes...
Scanning candidates...
Scanning processor microcode...
Scanning linux images...

Running kernel seems to be up-to-date.

The processor microcode seems to be up-to-date.

Restarting services...
Service restarts being deferred:
systemctl restart sddm.service

No containers need to be restarted.

User sessions running outdated binaries:
duzhuo @ session #3: cinnamon-launch[6978]

No VM guests are running outdated hypervisor (qemu) binaries on this host.
root@myLaptop:~# systemctl status vsftpd
○ vsftpd.service - vsftpd FTP server
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; preset: e>
Active: inactive (dead)

相关阅读

~jpetazzo/Use policy-rc.d to prevent services from starting automatically

debian-policy/starting-system-services

阅读全文 »

2024.09.26

  1. 熊德 大败 PA天怒串起来了
  2. 熊德 大败 酱油风行对线抢刀不勾兵不推塔
  3. 熊德 输 我是菜逼带错命石了
  4. 熊德 输 节奏不对
  5. 熊德 宰猪 拆塔老快了

2024.09.27

  1. 炼金 被火枪保享福 gg
  2. 熊德 畜生宙斯还在玩魔晶分身斧 敌法无输出
  3. 熊德 4v5打了40min两个盾拆掉高地

数据库中加密存储密码和验证密码的步骤

以下内容来自ChatGLM

存储密码

  1. 生成盐(Salt)
    • 为每个用户生成一个随机盐。
  2. 密码与盐结合
    • 将用户密码与盐值结合。
  3. 加密
    • 使用上述算法对结合后的密码进行加密。
  4. 存储
    • 将加密后的密码(哈希值)和盐存储在数据库中。

验证密码

  1. 从数据库中取出盐和哈希值

    • 在用户尝试登录时,系统需要从数据库中检索与该用户账户关联的盐值和之前存储的哈希密码。
  2. 使用相同的算法和盐对用户输入的密码进行加密

    • 将用户输入的密码与从数据库中取出的盐值结合,然后使用相同的加密算法对结合后的密码进行加密。
  3. 比较加密后的值与数据库中的哈希值是否相同

    • 将新计算出的哈希值与数据库中存储的哈希值进行比较。如果两者匹配,说明用户输入的密码正确;如果不匹配,说明密码错误。

关于盐:

内容来自 https://www.cnblogs.com/xjnotxj/p/12716981.html

  • 盐不能太短
  • 盐不能重复使用(否则一破解,所有的都遭殃)
  • 盐随机变化(例如,虽用户名不重复,但用户名不能拿来当盐)

TypeScript 代码实现

阅读全文 »
0%