Cipher.getInstance("AES/CBC/PKCS5Padding")、
Python Crypto.Cipher.AES 标准实现兼容;密钥不足时按 UTF-8 字节直接使用,不做 PBKDF 派生。
AES是什么? → AES(Advanced Encryption Standard)是美国国家标准技术研究所(NIST)发布的对称加密算法,取代了原来的DES。AES支持128位、192位、256位三种密钥长度,安全性高于DES。
AES-CBC和AES-ECB有什么区别? → CBC(Cipher Block Chaining)模式每个数据块加密前先与前一个密文块异或,更安全。ECB(Electronic Codebook)模式每个块独立加密,相同明文产生相同密文,不适合加密有模式的数据。推荐使用CBC模式。
AES-GCM是什么? → GCM(Galois/Counter Mode)是一种认证加密模式,同时提供加密和完整性校验。AES-GCM是目前最推荐的AEAD方案,广泛用于TLS、JWT等场景。
PKCS5Padding和PKCS7Padding有什么区别? → PKCS5是PKCS7的子集,PKCS5固定8字节块,PKCS7可变块大小。AES块大小为16字节,用PKCS7更准确,但Java中PKCS5Padding和PKCS7Padding实际等价。
AES-128和AES-256安全性差多少? → AES-128密钥空间2^128,AES-256密钥空间2^256。理论上AES-256更安全,但AES-128已足够安全,且速度更快。大部分场景AES-128够用。
密钥怎么生成? → 点击"生成随机密钥"按钮,使用浏览器Web Crypto API生成加密安全随机数。也可以用openssl命令:openssl rand -hex 16(128位)或openssl rand -hex 32(256位)。
数据安全吗? → 所有加密解密都在浏览器本地完成(Web Crypto API),密钥和明文不会上传到服务器。适合加密敏感数据。