Skip to content

nodejs 的一些加密算法 #51

@yaogengzhu

Description

@yaogengzhu

DESkey 处理

/**
 * 截取密钥,使其长度为8字节
 * @param {*} key
 * @returns
 */
function padKeyToEightBytes(key) {
  const keyBuffer = Buffer.from(key);
  const paddedKey = Buffer.alloc(8); // 创建一个8字节的缓冲区
  keyBuffer.copy(paddedKey); // 将原始密钥复制到缓冲区中
  // 如果原始密钥长度小于8字节,用0填充剩余部分
  if (keyBuffer.length < 8) {
    paddedKey.fill(0, keyBuffer.length);
  }
  // 如果原始密钥长度大于8字节,只保留前8字节
  else if (keyBuffer.length > 8) {
    paddedKey.write(key.slice(0, 8));
  }
  return paddedKey;
}

DES 加密处理

/**
 * DES加密的函数
 * @param {'*'} text
 * @param {*} secretKey
 * @returns
 */
function encryptWithDES(text) {
  try {
    let desKey = Buffer.from(
      padKeyToEightBytes('key'),
    );
    var cipher = crypto.createCipheriv('des-ecb', desKey, '');
    let c = cipher.update(text, 'utf8', 'base64');
    c += cipher.final('base64');
    return c;
  } catch (e) {
    console.log(e, 'error');
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions