簡體   English   中英

如何在 javascript 中使用 node-js 加密?

[英]How to use node-js crypto in javascript?

我需要以下加密解密,但在客戶端的 java 腳本中。 此代碼是用 Node-JS 編寫的並使用加密庫,我找不到用於客戶端運行的 java 腳本的相同解決方案。

const crypto = require('crypto');

const decrypt = (textBase64, keyBase64, ivBase64) => {
    const algorithm = 'aes-256-cbc';
    const ivBuffer = Buffer.from(ivBase64, 'base64');
    const keyBuffer = Buffer.from(keyBase64, 'base64');

    const decipher = crypto.createDecipheriv(algorithm, keyBuffer, ivBuffer);
    decipher.setAutoPadding(false);

    let decrypted = decipher.update(textBase64, 'base64', 'utf8');
    decrypted += decipher.final('utf8');
    return decrypted;
}

const encryptedMessage = '';


const key = 'cGFzc3dvcmQxMjM0NTY3ODk=';

const iv = Buffer.from(encryptedMessage, 'base64').slice(0, 16);

// the message comes from the bytes AFTER the IV - this is what you should decrypt
const message = Buffer.from(encryptedMessage, 'base64').slice(16);

const result = decrypt(message, key, iv);
console.log(result);
//console.log(Buffer.from(encryptedMessage, 'base64').slice(0, 16))

首先我會說不建議在客戶端解密,因為密鑰是可見的。 但你知道你在做什么。

這個庫是純 JS,應該可以在瀏覽器中正常工作: ricmoo/aes-js

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM