m-cloud API Documentation - v1.0.1-beta.5
    Preparing search index...

    Class EncryptionUtils

    加密工具类 提供安全的加密和解密功能,支持AES-256-GCM加密算法 包含数据加密、敏感字段处理、密钥管理等功能

    // 生成密钥
    const { key, salt } = await EncryptionUtils.generateKey('my-password')

    // 加密数据
    const encrypted = EncryptionUtils.encrypt('secret data', key)

    // 解密数据
    const decrypted = EncryptionUtils.decrypt(encrypted, key)

    // 加密敏感字段
    const data = { username: 'john', password: 'secret' }
    const encryptedData = EncryptionUtils.encryptSensitiveFields(
    data,
    key,
    ['password']
    )
    Index

    Constructors

    Methods

    • 从密码生成加密密钥(异步版本) 使用 scrypt 密钥派生函数从密码生成安全的加密密钥

      Parameters

      • password: string

        密码

      • Optionalsalt: Buffer<ArrayBufferLike>

        盐值,如果不提供则自动生成

      Returns Promise<{ key: Buffer; salt: Buffer }>

      加密密钥和盐值

      const { key, salt } = await EncryptionUtils.generateKey('my-password')
      // 保存 salt 以便后续使用
    • 加密数据

      Parameters

      • data: string | object

        要加密的数据

      • key: Buffer

        加密密钥

      Returns string

      加密后的数据(包含盐值、IV和认证标签)

    • 解密数据 解密使用 encrypt 方法加密的数据

      Parameters

      • encryptedData: string

        Base64 编码的加密数据

      • key: Buffer

        解密密钥

      Returns string

      解密后的原始数据

      const decrypted = EncryptionUtils.decrypt(encrypted, key)
      
    • 加密对象中的敏感字段 只加密指定的敏感字段,其他字段保持不变

      Parameters

      • obj: Record<string, any>

        要加密的对象

      • key: Buffer

        加密密钥

      • sensitiveFields: string[]

        敏感字段列表

      Returns Record<string, any>

      加密后的对象

      const data = { username: 'john', password: 'secret', email: 'john@example.com' }
      const encrypted = EncryptionUtils.encryptSensitiveFields(
      data,
      key,
      ['password', 'email']
      )
    • 解密对象中的敏感字段 解密使用 encryptSensitiveFields 方法加密的敏感字段

      Parameters

      • obj: Record<string, any>

        要解密的对象

      • key: Buffer

        解密密钥

      • sensitiveFields: string[]

        敏感字段列表

      Returns Record<string, any>

      解密后的对象

      const decrypted = EncryptionUtils.decryptSensitiveFields(
      encryptedData,
      key,
      ['password', 'email']
      )
    • 生成安全的随机密码 生成包含大小写字母、数字和特殊字符的随机密码

      Parameters

      • Optionallength: number = 16

        密码长度,默认为16

      Returns string

      随机生成的密码

      const password = EncryptionUtils.generateRandomPassword(20)
      
    • 屏蔽敏感数据(用于日志记录) 将敏感字段的部分字符替换为星号,用于安全地记录日志

      Parameters

      • data: Record<string, any>

        要屏蔽的数据

      • sensitiveFields: string[]

        敏感字段列表

      Returns Record<string, any>

      屏蔽后的数据

      const data = { username: 'john', password: 'secret123', email: 'john@example.com' }
      const masked = EncryptionUtils.maskSensitiveData(data, ['password', 'email'])
      // { username: 'john', password: 'se****23', email: 'jo****om' }