Skip to content

介绍下如何实现 token 加密?

Posted on:2024年8月15日 at 00:00

在身份认证中,Token 加密是确保用户身份验证信息安全的一种方法。常见的实现包括 JWT(JSON Web Token)和加密算法。下面是实现 Token 加密的基本步骤:

1. 生成 Token

  1. 选择加密算法

    • 常见的算法包括对称加密(如 HMAC SHA256)和非对称加密(如 RSA、ECMAScript)。
  2. 创建 Token

    • Payload:包含用户信息和其他声明。
    • Header:指定加密算法。
    • Signature:将 Header 和 Payload 使用密钥或公私钥对进行签名。

JWT 示例

const jwt = require("jsonwebtoken");

// 生成 Token
function generateToken(user) {
  const payload = { userId: user.id, username: user.username };
  const secretKey = "your_secret_key"; // 对称加密密钥
  const token = jwt.sign(payload, secretKey, { expiresIn: "1h" });
  return token;
}

2. 验证 Token

  1. 解析 Token

    • Header:从 Token 中提取算法和加密方式。
    • Payload:解析并获取用户信息。
    • Signature:验证签名是否有效,确保 Token 未被篡改。
  2. 验证过程

// 验证 Token
function verifyToken(token) {
  const secretKey = "your_secret_key";
  try {
    const decoded = jwt.verify(token, secretKey);
    return decoded; // 验证通过,返回解码后的用户信息
  } catch (err) {
    throw new Error("Invalid token");
  }
}

3. 常见的加密算法

4. Token 的安全管理

原文转自:https://fe.ecool.fun/topic/832f41cd-27bb-4fae-bf8d-b63b52d7086a