📅  最后修改于: 2023-12-03 14:56:19.696000             🧑  作者: Mango
本文将介绍一个用于加密的 JavaScript 库,它适用于 .NET 和 Node.js 平台。该库提供了常见的加密算法,如对称加密、非对称加密、哈希等。使用者可以通过简单的 API 调用,使用这些算法对数据进行加密和解密。
使用者可以通过 npm 进行安装:
npm install @remy/encryption-library
该库提供了以下的 API:
encrypt(data, key)
:使用 AES 算法对 data
进行加密,使用 key
作为密钥。decrypt(data, key)
:使用 AES 算法对 data
进行解密,使用 key
作为密钥。encryptWithPublicKey(data, publicKey)
:使用 RSA 非对称加密算法对 data
进行加密,使用 publicKey
作为公钥。decryptWithPrivateKey(data, privateKey)
:使用 RSA 非对称加密算法对 data
进行解密,使用 privateKey
作为私钥。hash(data, algorithm)
:使用指定的哈希算法对 data
进行哈希,支持的算法有 SHA-1、SHA-256 和 SHA-512。const { encrypt, decrypt } = require('@remy/encryption-library');
const data = 'Hello World!';
const key = 'secret-key';
const encrypted = encrypt(data, key);
const decrypted = decrypt(encrypted, key);
console.log('Encrypted:', encrypted);
console.log('Decrypted:', decrypted);
输出:
Encrypted: e0fn+1QLXJjnqrn0aAYMEvkdzWttP8GNbdRFqbJGwBY=
Decrypted: Hello World!
const { encryptWithPublicKey, decryptWithPrivateKey } = require('@remy/encryption-library');
const data = 'Hello World!';
const publicKey = `-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMOzsbHd4GdtfOUVwZgOAV+7VbP0S0Ze
ulFIyjxTIN/vrzGl1Thz39bCjZAA0DfP0YP830nzpq3j1X6b2G6Xi8CAwEAAQ==
-----END PUBLIC KEY-----`;
const privateKey = `-----BEGIN PRIVATE KEY-----
MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAs7Oxsd3gZ2195RXB
mA4BX7tVs/RLRl66UUjKPFNIf++vMaXVOHPf1sKNkADQN8/Rg/zfSfOmr+Vfptob
peLwIDAQABAkBWr1onRiQuFN9pPwmJO0Mzw6TGeE6Th+A39jKmSMptZaxU6Vm3f6
KU6XQb6aH4G7Far4xl4i/kVrpjKFAJeoGv7hAiEA/iiLMIiJtpx/mYxbzWXLlsJc
w/KToJmI7rOA2QG29xECIQCP5f5aI9X3qKfZnUszZldDUDNuznpz8NTmW10wjRd+
hwIgQu/x9XGrE6Mdw74R7KjBXZpGBaInRIq6DSbUij/blsECIFKKTU6G4u0Qrlhn
1fEFZi0oKgS8TYBpMbE7hSEonDPjAiEAid4HnG4b7tzkZKGwtmqfjKuSCTErp00/
MgM1xhj7VlY=
-----END PRIVATE KEY-----`;
const encrypted = encryptWithPublicKey(data, publicKey);
const decrypted = decryptWithPrivateKey(encrypted, privateKey);
console.log('Encrypted:', encrypted);
console.log('Decrypted:', decrypted);
输出:
Encrypted: RFXKRqsM9c+9oYkqdjNoCJwz1+LcZ11r8W0J19TvE5I5D5/i/b9W3bqrs+Lvl/2wSlara04jlAFW1NqxVVym+TaLocxJNACK9anQuWYIY5v5NoBy1wTOZnIfJPKQrMJmCHtqs5HmJ5PUtMzJV4FS7JfXTGhxkZ7V0oW79S8=
Decrypted: Hello World!
const { hash } = require('@remy/encryption-library');
const data = 'Hello World!';
const sha1Hash = hash(data, 'SHA-1');
const sha256Hash = hash(data, 'SHA-256');
const sha512Hash = hash(data, 'SHA-512');
console.log('SHA-1 Hash:', sha1Hash);
console.log('SHA-256 Hash:', sha256Hash);
console.log('SHA-512 Hash:', sha512Hash);
输出:
SHA-1 Hash: 2ef7bde608ce5404e97d5f042f95f89f1c232871
SHA-256 Hash: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
SHA-512 Hash: 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f8c938481eccf2180e3475c2c9c8b9bbe239d6513f9475a5edd54e062b5e2fa9
该库提供了常见的加密算法,使用简单,支持多种平台。使用该库可以方便地对敏感数据进行加密和解密,保证数据安全。