JWT(JSON Web Token)

关于JWT的学习笔记

const crypto = require('crypto')

// @渡一Web前端学习频道 2023.05.01
// JWT(JSON Web Token) 的本质是一个非常长的字符串
// 这个字符串有三个部分组成: header.payload.signature
// header: { "alg": "HS256", "typ": "JWT" } 基本上是固定的写法
// payload: { "name": "username", "age": 18 } 服务器想传递给客户端的信息(身份信息、JWT过期时间等)
// signature: 对 header 和 payload 通过 . 连接, 调用加密算法生成签名, 再转化成 base64 格式

// btoa() 对字符串进行 base64 编码
// atob() 对字符串进行 base64 解码

function sign(info, key) {
  // 调用crypto模块中的createHmac方法,通过sha256算法对秘钥进行哈希化
  const hmac = crypto.createHmac('sha256', key)
  // 哈希之后,添加明文 info
  hmac.update(info)
  // digest: 将之后的内容进行十六进制的消化吸收
  const signResult = hmac.digest('hex')
  return signResult
}

function JWT(info, key) {
  const header = {
    typ: 'JWT',
    alg: 'HS256'
  }
  const headerStr = Buffer.from(JSON.stringify(header)).toString('base64').replace(/=/g, '')
  const payloadStr = Buffer.from(JSON.stringify(info)).toString('base64').replace(/=/g, '')
  const signStr = sign(headerStr + '.' + payloadStr, key).replace(/=/g, '')

  return headerStr + '.' + payloadStr + '.' + signStr
}

const key = '123456' // 秘钥是保存在服务器端的, 不会发送给客户端
const userInfo = {
  userName: "userName",
  age: 18
}

const result = JWT(userInfo, key)
console.log(result)

### Windows 系统中将 D 空间分配给 C 为了实现这一目标,通常会采用第三方工具如傲梅分区助手来进行操作。这类工具提供了图形界面下的多种功能选项,使得用户能够轻松地调整现有磁分区的大小。 #### 使用傲梅分区助手调整磁分区 安装并启动傲梅分区助手之后,在程序界面上可以看到当前系统的各个逻辑主分区情况。对于想要减少D并将释放出来的未分配空间加到C的操作来说: 1. 首先选中本地磁D,通过鼠标右键菜单选择“调整/移动分区”。此时会出现一个新的窗口用于设定新的分区边界[^2]。 2. 将滑块向左拉动以预留出足够的未分配空间供后续步骤使用;也可以直接手动输入希望保留给D的具体数值(例如原D有100GB,计划转移60GB至C,则在此处设置为40GB)。确认无误后点击“确定”。 3. 接下来需要把刚刚产生的未分配区域挪动到紧邻着C的位置以便于下一步骤中的合并工作。这同样可以通过“调整/移动分区”的方式完成——只需选定代表该空白区间的条目并向左侧拖拽直至其与C接壤即可[^3]。 4. 对于最后一步即将额外获得的空间加入到系统当中去的做法有两种途径可以选择:一种是在前述软件内部继续执行相应命令来增大指定卷大小;另一种则是借助操作系统自带的服务—即打开‘此电脑’->‘管理’->‘磁管理’,找到刚才处理过的那部分连续可用区间,随后对着C:驱动器做一次“扩展卷”,按照提示逐步增加容量直到整个过程结束为止。 ```powershell # PowerShell脚本仅作为辅助理解流程,并非实际操作方法 Resize-Partition -DriveLetter "D" -Size (Get-PartitionSupportedSize -DriveLetter "D").SizeMin Add-PartitionAccessPath -DiskNumber 0 -PartitionNumber 2 -AccessPath "C:\" ``` 值得注意的是,在进行任何涉及改变硬结构的动作之前一定要做好重要文件备份以防万一发生意外丢失数据的情况。另外,虽然上述指导适用于大多数场景下解决此类问题,但由于硬件差异等因素影响可能会存在例外情形,请谨慎行事。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值