|
|

12精币
const crypto = require('crypto');
const GROUP_KEY_B64 = 'j8ND+SooO5m53aFlo41Di1UtNXmYbCFmn3A08tYSl1E=';
const GROUP_KEY = Buffer.from(GROUP_KEY_B64, 'base64'); // 32 字节
// 加密:传明文 -> 返回 { iv, ciphertext }
function encryptGroupText(plaintext) {
const iv = crypto.randomBytes(12); // 12 字节 IV
const cipher = crypto.createCipheriv('aes-256-gcm', GROUP_KEY, iv);
const enc = Buffer.concat([cipher.update(Buffer.from(plaintext, 'utf8')), cipher.final()]);
const tag = cipher.getAuthTag();
return {
iv: iv.toString('base64'),
ciphertext: Buffer.concat([enc, tag]).toString('base64'), // 密文+tag 拼一起
};
}
// 解密:传 iv、ciphertext -> 返回明文
function decryptGroupText(ivB64, ciphertextB64) {
const iv = Buffer.from(ivB64, 'base64');
const buf = Buffer.from(ciphertextB64, 'base64');
const data = buf.slice(0, buf.length - 16);
const tag = buf.slice(buf.length - 16);
const decipher = crypto.createDecipheriv('aes-256-gcm', GROUP_KEY, iv);
decipher.setAuthTag(tag);
const dec = Buffer.concat([decipher.update(data), decipher.final()]);
return dec.toString('utf8');
}
// 示例:加密 -> 解密 求助大佬使用易语言复现这份代码,加解密部分两个函数的实现,传明文生成密文,传密文和iv解密成密文 ,感激不尽!
const { iv, ciphertext } = encryptGroupText('这是测试加密消息');
console.log('iv:', iv);
console.log('ciphertext:', ciphertext);
console.log('plain:', decryptGroupText(iv, ciphertext));
求助大佬使用易语言复现这份代码,加解密部分两个函数的实现,传明文生成密文,传密文和iv解密成密文 ,感激不尽!
|
最佳答案
查看完整内容
直接让ai给你一个原生的js就是了
补充内容 (2025-12-8 08:34):
然后v8调用
回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。 友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。 快捷通道:申请荣誉值 →
|