揭秘JS代码解码技巧:轻松掌握字符串加密与解密方法

2026-07-04 0 阅读

在JavaScript编程中,字符串加密与解密是一项常见且重要的技能。它可以帮助我们保护敏感信息,防止数据泄露。本文将揭秘一些常用的JavaScript代码解码技巧,帮助您轻松掌握字符串加密与解密方法。

一、基础概念

在开始之前,我们需要了解一些基础概念:

  • 加密:将原始数据(明文)转换为无法直接识别的数据(密文)的过程。
  • 解密:将加密后的数据(密文)转换回原始数据(明文)的过程。

二、常用加密算法

JavaScript中常用的加密算法有:

  • Base64编码:将二进制数据转换为ASCII字符集表示的字符串。
  • AES加密:一种对称加密算法,使用相同的密钥进行加密和解密。
  • RSA加密:一种非对称加密算法,使用公钥加密和私钥解密。

1. Base64编码

Base64编码是一种简单的编码方法,可以用于数据的传输和存储。以下是一个使用Base64编码和解码的示例:

// Base64编码
const originalString = 'Hello, world!';
const encodedString = btoa(originalString);
console.log(encodedString); // 输出:SGVsbG8sIFdvcmxkIQ==

// Base64解码
const decodedString = atob(encodedString);
console.log(decodedString); // 输出:Hello, world!

2. AES加密

AES加密是一种常用的对称加密算法。以下是一个使用CryptoJS库进行AES加密和解密的示例:

// 引入CryptoJS库
const CryptoJS = require('crypto-js');

// AES加密
const key = CryptoJS.enc.Utf8.parse('1234567890123456'); // 16字节密钥
const encrypted = CryptoJS.AES.encrypt('Hello, world!', key, {
  mode: CryptoJS.mode.ECB,
  padding: CryptoJS.pad.Pkcs7
});
console.log(encrypted.toString()); // 输出加密后的字符串

// AES解密
const decrypted = CryptoJS.AES.decrypt(encrypted.toString(), key, {
  mode: CryptoJS.mode.ECB,
  padding: CryptoJS.pad.Pkcs7
});
const decryptedStr = CryptoJS.enc.Utf8.stringify(decrypted);
console.log(decryptedStr); // 输出解密后的字符串

3. RSA加密

RSA加密是一种非对称加密算法,可以用于公钥加密和私钥解密。以下是一个使用Node.js的crypto模块进行RSA加密和解密的示例:

const crypto = require('crypto');

// 生成RSA密钥对
const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', {
  modulusLength: 2048,
  publicKeyEncoding: {
    type: 'spki',
    format: 'pem'
  },
  privateKeyEncoding: {
    type: 'pkcs8',
    format: 'pem'
  }
});

// RSA加密
const encrypted = crypto.publicEncrypt(publicKey, Buffer.from('Hello, world!'));
console.log(encrypted.toString('hex')); // 输出加密后的字符串

// RSA解密
const decrypted = crypto.privateDecrypt(privateKey, Buffer.from(encrypted, 'hex'));
console.log(decrypted.toString()); // 输出解密后的字符串

三、总结

本文介绍了JavaScript中常用的字符串加密与解密方法,包括Base64编码、AES加密和RSA加密。通过学习这些技巧,您可以轻松地保护敏感信息,防止数据泄露。在实际应用中,请根据具体需求选择合适的加密算法,并确保密钥的安全。

分享到: