1.0.2 • Published 2 years ago

cross-crypto v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

跨平台加解密操作 基于 js-crypto 同时支持 浏览器环境与 nodejs 环境

my love

安装

yarn add cross-crypto

核心代码

  1. AES
const crypto = require("crypto-js");
  
// const content = `how old are you`;
// const secret = "ihP9cS6oqy24HAay";

export function encrypt(key, originStr) {
    const keyBuffer = crypto.enc.Utf8.parse(key);
    const encryptedData = crypto.AES.encrypt(originStr, keyBuffer, {
        mode: crypto.mode.ECB,
        padding: crypto.pad.Pkcs7,
    });
    const baseBuffer = crypto.enc.Base64.parse(encryptedData.toString());
    const hexData = crypto.enc.Hex.stringify(baseBuffer);
    return hexData.toString().toUpperCase();
}

export function decrypt(key, encryptedStr) {
    const keyBuffer = crypto.enc.Utf8.parse(key);
    const encryptedHexBuffer = crypto.enc.Hex.parse(encryptedStr);
    const encryptedBase64Str = crypto.enc.Base64.stringify(encryptedHexBuffer);
    const decryptedData = crypto.AES.decrypt(encryptedBase64Str, keyBuffer, {
        mode: crypto.mode.ECB,
        padding: crypto.pad.Pkcs7,
    });
    const decryptContent = decryptedData.toString(crypto.enc.Utf8);
    return decryptContent;
}

// const encryptResult = encrypt(secret, content);
// const decryptResult = decrypt(secret, encryptResult);


// console.log("\r\n原文:", content);
// console.log("\r\n解密后:", decryptResult);
// console.log("\r\n解密后与原文一致:", decryptResult === content);

测试

npm run test    
1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago