JavaScript(JS)加密主要可以分为以下几种类型:
基础概念:使用相同的密钥进行加密和解密。 优势:速度快,适合大量数据的加密。 常见算法:AES(高级加密标准)、DES(数据加密标准)、3DES(三重数据加密算法)。
示例代码:
const CryptoJS = require('crypto-js');
const secretKey = 'your-secret-key';
// 加密
const ciphertext = CryptoJS.AES.encrypt('Hello World', secretKey).toString();
console.log('Encrypted:', ciphertext);
// 解密
const bytes = CryptoJS.AES.decrypt(ciphertext, secretKey);
const originalText = bytes.toString(CryptoJS.enc.Utf8);
console.log('Decrypted:', originalText);
基础概念:使用一对密钥,公钥用于加密,私钥用于解密。 优势:安全性高,适合密钥交换和数字签名。 常见算法:RSA、ECC(椭圆曲线加密)、ElGamal。
示例代码:
const NodeRSA = require('node-rsa');
// 生成密钥对
const key = new NodeRSA({ b: 512 });
const publicKey = key.exportKey('public');
const privateKey = key.exportKey('private');
// 加密
const encrypted = key.encrypt('Hello World', 'base64');
console.log('Encrypted:', encrypted);
// 解密
const decrypted = key.decrypt(encrypted, 'utf8');
console.log('Decrypted:', decrypted);
基础概念:将任意长度的数据映射为固定长度的字符串,通常用于数据完整性验证。 优势:不可逆,适合密码存储和数据校验。 常见算法:MD5、SHA-1、SHA-256。
示例代码:
const crypto = require('crypto');
// 哈希
const hash = crypto.createHash('sha256');
hash.update('Hello World');
const hashed = hash.digest('hex');
console.log('Hashed:', hashed);
基础概念:结合对称加密和非对称加密的优点,通常用非对称加密保护对称加密的密钥。 优势:既保证了安全性,又提高了效率。 应用场景:安全通信协议(如TLS/SSL)。
基础概念:允许在加密数据上进行计算,解密后的结果与直接对明文数据进行计算的结果一致。 优势:数据隐私保护,适合云计算环境中的数据处理。 常见算法:Paillier、ElGamal。
希望这些信息对你有所帮助!如果有更多具体问题,欢迎继续提问。
领取专属 10元无门槛券
手把手带您无忧上云