在vue2中將數(shù)據(jù)加密并打包成壓縮包

一朝墩、下載插件

npm install @zip.js/zip.js
npm install crypto-js
npm install file-saver

二、將數(shù)據(jù)加密與解密

1.將數(shù)據(jù)加密

var key = CryptoJS.enc.Utf8.parse('key');
var iv = CryptoJS.enc.Utf8.parse('iv');
var encrypted = CryptoJS.AES.encrypt("Hello, this is a secret message!", key, {
        iv: iv,
       mode: CryptoJS.mode.CBC,
       padding: CryptoJS.pad.Pkcs7
    });
var encryptedString = encrypted.toString();

2.將數(shù)據(jù)解密

let decryptString = CryptoJS.AES.decrypt(encryptedString, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
     }).toString(CryptoJS.enc.Utf8)

3.將文件進(jìn)行加密

  const reader = new FileReader();
        reader.onload = async (e) => {
            const content = e.target.result;
            // 使用CryptoJS加密內(nèi)容
            var encrypted = CryptoJS.AES.encrypt(content, key, {
                iv: iv,
                mode: CryptoJS.mode.CBC,
                padding: CryptoJS.pad.Pkcs7
            });
            var encryptedContent = encrypted.toString();
        };
        reader.readAsDataURL(this.files); // 讀取文件內(nèi)容為文本

三蜡峰、對數(shù)據(jù)與文件生產(chǎn)壓縮包

const TEXT_CONTENT = "xxx,xxx,x,xx,xxxx"
const FILENAME = "demo.docx";
let password = "password";
const BLOB = new Blob([TEXT_CONTENT], { type: zip.getMimeType(FILENAME) });
const fileBlob = new Blob([this.files], { type: zip.getMimeType(this.files.name) });
const blobWriter = new zip.BlobWriter("application/zip");
const zipWriter = new zip.ZipWriter(blobWriter);

await zipWriter.add(FILENAME, new zip.BlobReader(BLOB), { password: password, zipCrypto: true });
await zipWriter.add("demo.txt", new zip.TextReader("hello world"), { password: password, zipCrypto: true });
await zipWriter.add(this.files.name, new zip.BlobReader(fileBlob), { password: password, zipCrypto: true });
const blob = await zipWriter.close();

FileSaver.saveAs(blob, 'encrypted.zip');  // 下載文件

// 轉(zhuǎn)換 blob 為 file對象 進(jìn)行文件上傳功能
const file = new File([blob], "encrypted.zip", { type: blob.type })
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末翘魄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子晦鞋,更是在濱河造成了極大的恐慌,老刑警劉巖棺克,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悠垛,死亡現(xiàn)場離奇詭異,居然都是意外死亡娜谊,警方通過查閱死者的電腦和手機(jī)确买,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纱皆,“玉大人湾趾,你說我怎么就攤上這事∨刹荩” “怎么了搀缠?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長近迁。 經(jīng)常有香客問我艺普,道長,這世上最難降的妖魔是什么鉴竭? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任歧譬,我火速辦了婚禮,結(jié)果婚禮上搏存,老公的妹妹穿的比我還像新娘瑰步。我一直安慰自己,他們只是感情好璧眠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布缩焦。 她就那樣靜靜地躺著兵钮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舌界。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天泰演,我揣著相機(jī)與錄音呻拌,去河邊找鬼。 笑死睦焕,一個(gè)胖子當(dāng)著我的面吹牛藐握,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播垃喊,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼猾普,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了本谜?” 一聲冷哼從身側(cè)響起初家,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乌助,沒想到半個(gè)月后溜在,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡他托,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年掖肋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赏参。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡志笼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出把篓,到底是詐尸還是另有隱情纫溃,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布韧掩,位于F島的核電站皇耗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏揍很。R本人自食惡果不足惜郎楼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窒悔。 院中可真熱鬧呜袁,春花似錦、人聲如沸简珠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至膘融,卻和暖如春芙粱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背氧映。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工春畔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岛都。 一個(gè)月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓律姨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親臼疫。 傳聞我的和親對象是個(gè)殘疾皇子择份,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容