本帖最后由 风之暇想 于 2025-7-18 13:31 编辑
曰唱
曰唱是是一款文本加密工具的改进版,尽管原工具有些落后,但经过改进后仍可一用。
改进内容
- 更换加密库,密码使用
PBKDF2-SHA256迭代10万次
- 增加压缩明文,更改加密算法为
AES-GCM,更改中文映射表
- 自动去除密文前后空格、换行符
相关代码
async function encrypt() {
const msg = $("#text-decryped").val();
let key = $("#text-key").val() || DefaultPassword;
if (!msg) {
$("#error-alert").text("请输入待加密的明文").show();
$("#copy-alert").hide();
return;
}
try {
const compressedData = await deflateCompress(msg);
const iv = generateIV();
const salt = generateSalt();
const keyMaterial = await getKeyMaterial(key, salt);
const encrypted = await window.crypto.subtle.encrypt(
{ name: 'AES-GCM', iv: iv },
keyMaterial,
compressedData
);
const combined = new Uint8Array(salt.byteLength + iv.byteLength + encrypted.byteLength);
let offset = 0;
combined.set(salt, offset);
offset += salt.byteLength;
combined.set(iv, offset);
offset += iv.byteLength;
combined.set(new Uint8Array(encrypted), offset);
let str = arrayBufferToBase64(combined.buffer);
str = replaceForSong(str);
$("#text-encryped").val("唱:" + str);
$("#error-alert").hide();
$("#copy-alert").hide();
} catch (err) {
console.error("加密错误详情:", err);
$("#error-alert").text(`加密失败:${err.message} (${err.name})`).show();
$("#copy-alert").hide();
}
}
开源地址
曰唱
相关项目
推荐使用功能更强、安全性更高的 - 想曰
|