电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:89日期: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 進行加密操作是可行的?,F在有許多 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
相關文章:
主站蜘蛛池模板: 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 | U拓留学雅思一站式服务中心_留学申请_雅思托福培训 | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | 电缆故障测试仪_电缆故障定位仪_探测仪_检测仪器_陕西意联电气厂家 | 世界箱包品牌十大排名,女包小众轻奢品牌推荐200元左右,男包十大奢侈品牌排行榜双肩,学生拉杆箱什么品牌好质量好 - Gouwu3.com | 致胜管家软件服务【在线免费体验】 | 老房子翻新装修,旧房墙面翻新,房屋防水补漏,厨房卫生间改造,室内装潢装修公司 - 一修房屋快修官网 | 二手回收公司_销毁处理公司_设备回收公司-找回收信息网 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 | 磁力抛光研磨机_超声波清洗机厂家_去毛刺设备-中锐达数控 | 【直乐】河北石家庄脊柱侧弯医院_治疗椎间盘突出哪家医院好_骨科脊柱外科专业医院_治疗抽动症/关节病骨伤权威医院|排行-直乐矫形中医医院 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 重庆LED显示屏_显示屏安装公司_重庆LED显示屏批发-彩光科技公司 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 南京交通事故律师-专打交通事故的南京律师 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 火锅底料批发-串串香技术培训[川禾川调官网]| 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 冷库安装厂家_杭州冷库_保鲜库建设-浙江克冷制冷设备有限公司 | 拉卡拉POS机官网 - 官方直营POS机办理|在线免费领取 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 齿轮减速马达一体式_蜗轮蜗杆减速机配电机-德国BOSERL齿轮减速电动机生产厂家 | 电缆故障测试仪_电缆故障定位仪_探测仪_检测仪器_陕西意联电气厂家 | 防弹玻璃厂家_防爆炸玻璃_电磁屏蔽玻璃-四川大硅特玻科技有限公司 | 馋嘴餐饮网_餐饮加盟店火爆好项目_餐饮连锁品牌加盟指南创业平台 | LED投光灯-工矿灯-led路灯头-工业灯具 - 山东普瑞斯照明科技有限公司 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 江苏全风,高压风机,全风环保风机,全风环形高压风机,防爆高压风机厂家-江苏全风环保科技有限公司(官网) | 湖州织里童装_女童男童中大童装_款式多尺码全_织里儿童网【官网】-嘉兴嘉乐网络科技有限公司 | 黑田精工电磁阀-CAMMOZI气缸-ROSS电磁-上海茂硕机械设备有限公司 | 代写标书-专业代做标书-商业计划书代写「深圳卓越创兴公司」 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 | 橡胶弹簧|复合弹簧|橡胶球|振动筛配件-新乡市永鑫橡胶厂 | 防水套管厂家_刚性防水套管_柔性防水套管_不锈钢防水套管-郑州中泰管道 | 货车视频监控,油管家,货车油管家-淄博世纪锐行电子科技 |