四川城乡建设厅网站,重庆网站seo按天计费,中小工厂erp管理系统,seo点击排名软件营销工具Base64编码#xff1a; 优点#xff1a; 简单#xff0c;易于实现。不是真正的加密#xff0c;只是编码#xff0c;可以用于数据传输和存储。 缺点#xff1a; 不提供数据保密性#xff0c;容易被解码。 示例代码#xff1a; // 编码
const encodedData btoa(Hello,… Base64编码 优点 简单易于实现。不是真正的加密只是编码可以用于数据传输和存储。 缺点 不提供数据保密性容易被解码。 示例代码 // 编码
const encodedData btoa(Hello, World!);
console.log(encodedData);// 解码
const decodedData atob(encodedData);
console.log(decodedData);哈希函数 优点 提供数据完整性验证。相同输入始终生成相同的哈希值。 缺点 不可逆无法还原原始数据。容易受到彩虹表攻击。 示例代码 使用JavaScript的crypto.subtle来计算SHA-256哈希值的示例代码 async function calculateSHA256Hash(data) {const encoder new TextEncoder();const dataBuffer encoder.encode(data);const hashBuffer await crypto.subtle.digest(SHA-256, dataBuffer);const hashArray Array.from(new Uint8Array(hashBuffer));const hashHex hashArray.map(byte byte.toString(16).padStart(2, 0)).join();return hashHex;
}const originalData Hello, World!;
calculateSHA256Hash(originalData).then(hash {console.log(hash); // SHA-256哈希值
});对称加密 优点 加密和解密速度快。适用于大量数据加密。 缺点 密钥管理可能复杂。需要安全地传输密钥。 示例代码 使用Web Crypto API进行AES加密的示例代码 async function encryptData(data, key) {const encoder new TextEncoder();const dataBuffer encoder.encode(data);const encryptedData await crypto.subtle.encrypt({ name: AES-GCM, iv: new Uint8Array(12) }, key, dataBuffer);return new Uint8Array(encryptedData);
}async function decryptData(encryptedData, key) {const decryptedData await crypto.subtle.decrypt({ name: AES-GCM, iv: new Uint8Array(12) }, key, encryptedData);const decoder new TextDecoder();return decoder.decode(decryptedData);
}// 生成随机AES密钥
crypto.subtle.generateKey({ name: AES-GCM, length: 256 }, true, [encrypt, decrypt]).then(key {const originalData Hello, World!;encryptData(originalData, key).then(encryptedData decryptData(encryptedData, key)).then(decryptedData {console.log(decryptedData); // 解密后的数据});
});非对称加密 优点 安全性高一个密钥用于加密另一个用于解密。适用于安全通信和数字签名。 缺点 加密和解密速度相对较慢。密钥管理复杂。 示例代码 使用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,},
});const originalData Hello, World!;// 加密
const encryptedData crypto.publicEncrypt(publicKey, Buffer.from(originalData));
console.log(encryptedData.toString(base64));// 解密
const decryptedData crypto.privateDecrypt(privateKey, encryptedData);
console.log(decryptedData.toString());JS在线加密
js在线加密是一款国内顶尖的js保护方案已经有许多客户使用。同时配备了一键在线解密其他简单加密的功能.