🔐 AES加密工具

专业的AES加密工具,支持AES-128/192/256多种密钥长度,提供CBC、ECB、CFB、OFB、GCM等多种加密模式,适用于安全数据加密解密

什么是AES加密?

AES(高级加密标准)是美国联邦政府采用的对称加密算法。它支持128、192和256位的密钥长度,提供不同级别的安全性。AES被广泛用于文件加密、数据库保护、网络通信等各种应用中的敏感数据保护。

密钥强度

  • AES-128:128位密钥,性能快速
  • AES-192:192位密钥,安全性增强
  • AES-256:256位密钥,最高安全性

加密模式

  • CBC:密码块链接模式(推荐)
  • ECB:电子密码本模式(基础)
  • CFB/OFB:流密码模式
  • GCM:认证加密模式

应用场景

  • 文件和数据库加密
  • 安全通信(HTTPS、VPN)
  • API密钥和凭证保护
  • 支付和金融数据安全

安全最佳实践

始终使用强随机生成的密钥。不要在同一密钥下重复使用IV。避免在生产环境中使用ECB模式。考虑使用像GCM这样的认证加密模式。此工具仅执行客户端加密 - 您的数据不会离开浏览器。

算法和模式设置

密钥长度:256 bits
安全性:很高
IV长度:128 bits

密钥和IV管理

必需
必需

输入数据

字符数: 0

加密结果

输出长度: 0

AES算法详情与实现示例

算法信息

算法:AES-256-CBC
密钥长度:256 bits
IV长度:128 bits
安全级别:很高
性能:良好
推荐:common.yes

模式特性

CBC(密码块链接)使用前一个密文块加密每个块

提供良好的安全性并广泛支持

每次加密操作都需要唯一的IV

适用于大多数通用加密需求

使用场景与建议

文件加密

文档加密、数据库加密、备份保护

传统系统

与旧系统和标准的兼容性

通用目的

一般加密需求的最常用模式

代码实现示例

JavaScript (Node.js + crypto)
const crypto = require('crypto');

class AESCrypto {
  constructor() {
    this.algorithm = 'aes-256-cbc';
  }
  
  // Generate random key
  generateKey() {
    return crypto.randomBytes(32); // 256 bits
  }
  
  // Generate random IV
  generateIV() {
    return crypto.randomBytes(16); // 128 bits for CBC
  }
  
  // Encrypt data
  encrypt(plaintext, key, iv) {
    const cipher = crypto.createCipher(this.algorithm, key);
    cipher.setAutoPadding(true);
    
    let encrypted = cipher.update(plaintext, 'utf8', 'base64');
    encrypted += cipher.final('base64');
    
    return {
      encrypted,
      key: key.toString('hex'),
      iv: iv.toString('hex')
    };
  }
  
  // Decrypt data
  decrypt(encrypted, key, iv) {
    const decipher = crypto.createDecipher(this.algorithm, Buffer.from(key, 'hex'));
    
    let decrypted = decipher.update(encrypted, 'base64', 'utf8');
    decrypted += decipher.final('utf8');
    
    return decrypted;
  }
}

// Usage example
const aes = new AESCrypto();
const key = aes.generateKey();
const iv = aes.generateIV();
const plaintext = "Sensitive data to encrypt";

const result = aes.encrypt(plaintext, key, iv);
console.log('Encrypted:', result.encrypted);

const decrypted = aes.decrypt(result.encrypted, result.key, result.iv);
console.log('Decrypted:', decrypted);