日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

如何在瀏覽器端加密——使用Javascript加密解密

瀏覽:185日期:2023-11-23 18:38:07

在創建 Opal 網站時,我們所面臨的挑戰,是尋找在瀏覽器中加密解密的可靠方法。

這篇文章描述了瀏覽器端加密所面臨的難題,并指出了近期的科技進步所提供的一種解決方案。

在 Web 應用中加密的三種選擇

只有 JavaScript 才是所有瀏覽器都支持的語言。與 Opal 同類的 Web 應用使用 JavaScript 編寫,以便于在任何現代瀏覽器上運作。如果這些應用要使用加密函數,那么 JavaScript 必須能夠訪問到它們。

目前,要把加密函數暴露給瀏覽器的 JavaScript,只有三個選項:

1、使用插件加密

插件是指運行在瀏覽器中,可以由 JavaScript 調用的,編譯過的代碼。

比如,Java 和 Flash 中存在的加密庫。這樣的做法通常性能很高,但是需要用戶安裝瀏覽器插件程序,而這,也是人們不愿意,或者完成不了的部分(如果他們使用的是公用電腦)。

另外一個選項是使用 Chrome 瀏覽器的NaCl 客戶端(Native Client)程序,它允許運行由 C 或者 C++ 編譯出的機器代碼。同樣,這種做法的性能很高,但是NaCl客戶端程序只能用于 Chrome 瀏覽器。

即使這些插件和NaCl客戶端程序在速度上有優勢,但是因為他們需要用戶使用特殊插件,或者使用特定瀏覽器,因此這種做法的可移植性不是很好。

2、使用 Web 加密 API

即將出現的Web 加密 API會給 JavaScript 提供原生的基本加密接口,讓 Web 應用可以更快地加密解密。但是,這項接口仍在草案階段,主流瀏覽器要采用這項技術還很長的一段時間。而現在,能在多數瀏覽器中使用的,只有crypto.getRandomValues()函數。

在 Web 加密 API 廣泛應用之前,這并不是一項切實可行的瀏覽器端加密方案。

3、直接用 JavaScript 加密

這種方案的優點就在于高度的可移植性。所有的瀏覽器都可以執行 JavaScript,也就意味著所有的瀏覽器都可以調用 JavaScript 寫成的加密庫。

在 JavaScript 中加密主要有兩項缺陷:安全性和速度。我們會輪流談到這兩項缺陷。

JavaScript 加密可以變得安全

有文章聲稱“JavaScript 加密是有害的”,并且列出了許多證據支持這一論述。

文中的某些觀點現在不再準確了。例如,這篇文章說,Math.random()函數不是隨機數的良好來源,所以不可能得到足夠的隨機數用來加密。Math.random() 函數的確不是隨機數的良好來源。在現代瀏覽器已經提供了 crypto.getRandomValues()函數以取得足夠數量的隨機數。

這個帖子中有相當多的案例證明 JavaScript 加密是個壞主意,但這種做法也它的意義。

這條回答有利地駁斥了第一個帖子中的許多觀點,同時也指出了 JavaScript 加密的兩個有效用例:端對端的信息加密(也就是對主機訪問做出防護的應用)以及安全的遠程密碼認證。這些正好是 Opal 加密的使用場景,所以我們使用 JavaScript 加密是非常自然的。

JavaScript 加密可以很快

直到最近,JavaScript 在進行安全加密所要用到的復雜計算時都很慢。這直接導致了許多應用程序需要依賴于插件所提供的加密功能,這樣的做法可移植性差,同時也會讓用戶厭煩。

幸運的是,JavaScript 近年來的性能有極大提升,所以完全使用 JavaScript 進行加密操作是可行的。現在有許多 JavaScript 加密庫可供選擇(鏈接1,鏈接2,鏈接3,鏈接4,鏈接5,鏈接6,鏈接7,鏈接8,鏈接9)。

于是就變成了選哪一個庫的問題。

NaCl,一個可以信賴的 C 語言加密庫

NaCl(讀作 “salt”) 是一個 C 語言的庫,提供對稱式密鑰加密解密和公鑰簽名認證的應用函數。它由密碼學人士編寫,在加密社區廣為人知,受到信賴。問題之一是 NaCl 是 C 語言,而不是 JavaScript 編寫的。

js-NaCl:將 NaCl 編譯成 JavaScript

幸運的是,我們能把 NaCl 編譯成 LLVM 的字節碼,然后用emscripten將這些字節碼編譯成 JavaScript。并且,LLVM 編譯器能在編譯時作許多優化,所以得到的 JavaScript 代碼也會得到優化。因此我們可以將 NaCl 庫編譯成 JavaScript,作好在瀏覽器中運行的準備!

js-nacl項目正是: 編譯成 JavaScript 的 NaCl 加密庫。

asm.js 的速度很快!

更好的是,emscripten 編譯出的代碼是 JavaScript 的子集,也叫做asm.js。你可以將 asm.js 當作很像 JavaScript 的匯編語言。瀏覽器遇到了 asm.js 的代碼塊時,會將其編譯成高效的機器碼,運行速度接近原生代碼。

目前主要只有 Firefox 瀏覽器支持 asm.js 的優化。這就使 js-nacl 在 Firefox 中的加密解密非常迅速,視具體操作的不同,比 Chrome 瀏覽器的速度快 2 至 8 倍。但是即使是 Chrome,js-nacl 也很快,超過了我們所測試的其他所有加密庫。

NaCl 這樣備受信賴的加密庫和現代瀏覽器的快速執行,使像 Opal 這樣的 Web 應用都應當使用 js-nacl 庫。

同樣的原因下,Opal 使用了由emscripten 編譯出的 asm.js版scrypt 庫來擴展密鑰(正在這篇文章中啟用)。你可以看到由項目維護者提供的 js-nacl 和 js-scrypt 性能的對比。我們同時也給 js-nacl 作了jsperf 測試,以了解各個不同瀏覽器版本的性能差異,你也可以隨意嘗試。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
鲁大师影院一区二区三区| 免费亚洲婷婷| 久久久成人网| 欧洲在线一区| 黄色免费成人| 亚洲三级网址| 国产精品丝袜在线播放| 免费在线成人| 精品视频在线观看网站| 精品日韩一区| 亚洲欧美伊人| 中文字幕成人| 久久99精品久久久野外观看| 国产一区二区三区免费在线| 夜鲁夜鲁夜鲁视频在线播放| 在线成人直播| 亚洲精一区二区三区| 国产精品magnet| 色爱综合av| 亚洲欧洲日韩精品在线| 久久av网址| 亚洲精品888| 国产欧美一区二区色老头| 视频在线不卡免费观看| av亚洲免费| 国产精品一级| 国产伦精品一区二区三区视频| 青青青免费在线视频| 一区二区电影在线观看| 牛牛精品成人免费视频| 久久久久久久久久久妇女 | 蜜桃久久av| 国产精品分类| 亚洲国产一区二区在线观看| 国产精品毛片久久久| 亚洲一本视频| 日本欧美一区二区在线观看| 日韩在线观看不卡| 91久久精品无嫩草影院| 天堂日韩电影| 国产精品调教视频| 欧美精品黄色| 蜜桃久久久久| 视频一区在线视频| 黄在线观看免费网站ktv| 综合激情五月婷婷| 国产探花在线精品| 女同性一区二区三区人了人一| 国产伦理一区| 丝袜美腿亚洲一区| 一区二区精品伦理...| 国产精品二区影院| 亚洲区第一页| 不卡一区综合视频| 麻豆精品在线| 一区二区三区四区精品视频| 中文字幕色婷婷在线视频| 欧美一区二区三区免费看| 99久久精品国产亚洲精品| 国产精品久久久久久久久久妞妞| 亚洲一区二区动漫| 欧美午夜精彩| 亚洲免费福利| 欧美精品1区| 日韩综合一区二区| 国产视频一区欧美| 欧美日韩免费看片| 久久精品系列| 国产精品一区三区在线观看| 蜜臀久久久久久久| 国产一区视频在线观看免费| 国产aⅴ精品一区二区三区久久 | 精品视频在线你懂得| 久久国产精品色av免费看| 久久福利毛片| 欧美不卡在线| 欧美性感美女一区二区| 成人台湾亚洲精品一区二区| 欧美一区影院| 天堂久久一区| 最新国产精品视频| 久久亚洲风情| 国产精品免费看| 99riav1国产精品视频| 久久久夜精品| 亚洲国产专区校园欧美| 欧美日韩尤物久久| av资源中文在线| 黄色在线网站噜噜噜| 国产成人免费av一区二区午夜| 欧美国产免费| 国际精品欧美精品| 精品一区二区三区中文字幕 | 亚洲欧美日韩精品一区二区| 激情五月色综合国产精品| 91精品一区二区三区综合| 国产乱码午夜在线视频| 精品久久久久中文字幕小说| 国产精品日本一区二区不卡视频 | а√在线中文在线新版| 亚洲免费黄色| 亚洲另类av| 日韩激情精品| 欧美激情亚洲| 中文字幕在线视频网站| 日韩久久一区二区三区| 欧美99久久| 一级欧美视频| 日韩福利在线观看| 国产精品探花在线观看| 狂野欧美性猛交xxxx| 精品视频在线你懂得| 日韩电影免费在线观看| 国产91久久精品一区二区| 久久一区二区三区电影| 激情综合网站| 亚洲精品伊人| 中文字幕日韩高清在线| 国产精品一国产精品| 欧美国产小视频| 不卡在线一区| 久久国产人妖系列| 综合日韩av| 久久国产高清| 亚洲va在线| 婷婷成人av| 超碰在线99| 免费久久99精品国产自在现线| 日韩区欧美区| 精品久久不卡| 国产一区日韩一区| 日韩精品免费视频人成 | 久久精品伊人| 欧洲激情综合| 国产毛片精品| 亚洲手机在线| 青青草伊人久久| 日韩免费久久| 日韩一区二区三区高清在线观看| 国产专区精品| 日韩影院精彩在线| 久久精品色播| 免费在线观看视频一区| 久久爱www成人| 欧美日韩在线二区| 日本aⅴ免费视频一区二区三区| 色爱综合网欧美| 婷婷精品在线观看| 日韩欧美看国产| 国产午夜久久av| 婷婷久久一区| 久久一区国产| 三级欧美韩日大片在线看| 成人国产精品一区二区免费麻豆| 视频一区在线视频| 天堂√8在线中文| 日本午夜精品视频在线观看| 91精品推荐| 国产精品片aa在线观看| 天堂网av成人| 欧美a一区二区| 亚洲一区二区三区久久久| 在线精品亚洲欧美日韩国产| 日韩精品欧美大片| 91九色精品国产一区二区| 岛国精品一区| 日本午夜精品久久久久| 亚洲黄页一区| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 亚洲精品动态| 999久久久91| 麻豆精品在线观看| 免费日本视频一区| 97人人精品| 国产精品地址| 日韩精品导航| 国产美女精品| 久久精品官网| 日韩av免费大片| 国产激情久久| 日韩区欧美区| 日韩精品一级二级| 免费不卡中文字幕在线| av资源亚洲| 精品视频91| 国产日韩欧美一区二区三区在线观看| 亚洲神马久久| 国产一区二区三区四区五区 | 国产精品a级| 日韩精品一区第一页| 1024精品久久久久久久久| 成人va天堂| 日韩一区自拍| 国产一区日韩| 激情不卡一区二区三区视频在线| 国产乱码精品一区二区三区亚洲人 | 在线日韩一区| 日韩欧美一区二区三区在线观看| 国产aⅴ精品一区二区三区久久| 国产精品乱战久久久|