戴手套、游泳也能用,可控制運動相機與耳機的智慧戒指 ArcX 登場_台中搬家

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

對愛好戶外運動的人士而言,雖然手機可以保持聯繫、導航、拍照與監控生理狀況的功能真的十分便利,然而也很可能會因為使用它而將專注力轉移造成意外 — ArcX 創辦人就曾遇過類似的狀況,也因此,選擇在完成軍旅生涯後轉職創業家,希望能創造出一個支援各種戶外運動場合的智慧戒指。繼續閱讀戴手套、游泳也能用,可控制運動相機與耳機的智慧戒指 ArcX 登場報導內文。
  ▲圖片來源:ArcX

戴手套、游泳也能用,可控制運動相機與耳機的智慧戒指 ArcX 登場

ArcX 的硬體與發想其實真的堪稱智慧戒指領域的 GoPro。這是個希望能解決運動過程裡,使用智慧裝置操作的產品。除了手指(戴手套也可以)它的獨特設計還可以透過配件來套在車輛手把或是船槳上使用 — 沒錯,防水是一定要的啦。

▲圖片來源:ArcX

他們標榜這個運動戒指能用來操作幾乎所有藍牙控制的設備,例如運動相機或藍牙喇叭等 — 這方面具體的支援方式其實官方並沒有詳細說明,但就影片裡有看到的部分,專屬 App 是確定至少可以用作 SOS 緊急求助功能是沒問題。

▲圖片來源:ArcX

除此之外,透過官方稱之為 Joystick 但看似還只有示範按鈕功能的 ArcX 控制鈕,你也可以拿來用作接聽電話、換曲等與 iOS 與 Android 手機有所關聯的操控。

▲圖片來源:ArcX

高續航也是主打的功能之一,據報,可提供 1 小時就能快充滿電的 ArcX,擁有 20 日待機時間與 5 日的使用時間。售價則為 US$99 也就是約 NT$2,800。有興趣的朋友,可以到他們的官網訂閱最新的發售消息喔。

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

延伸閱讀:

1,000 公里續航、超多感測器與超強算力的 NIO ET7 發表:超越特斯拉的「蔚來」電動車

Pixel 的雷達黑科技傳將被用在新世代 Google 智慧顯示器上

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

最權威的汽車可靠性排行榜!你喜歡的車到底可不可靠?_台中搬家

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

所以種種原因,就造成了本田現在這個局面。認為,以上的事件的確體現了本田在質量管理方面存在缺點,但在眼裡本田車依舊是耐用、毛病少的經典日系品牌。關注二手車市場的人就知道了,本田的飛度、雅閣、CRV等車在二手車市場的保值率是相當高的,希望本田能快點自我調整。

美國的《消費者報告》雜誌每年都會公布一個汽車可靠性的調查結果,從調查結果我們可以看見在美國市場各大汽車品牌按可靠性從高到低的一個排行。為什麼會關注這個排行榜?因為《消費者報告》把讀者作為自己的最大客戶,所以這個媒體的獨立性很強,其發布的排行榜參考價值也是最高,快來看看愛車所屬的牌子能排第幾名?

0

耐操強人-豐田兄弟

從表中可以看出,雷克薩斯和豐田兩個“豐田系”品牌佔據了排行榜的一二位,這本來不是什麼大事,只是他倆連續四年佔據這個位置,確實讓人佩服。

豐田系的可靠性如此突出,這和他們家的“守舊”不無關係。像渦輪增壓發動機,直到NX200t才開始量產,又例如日系車很喜歡用的CVT變速箱,也是直到今年上市的致炫和卡羅拉這些車才開始普及。有一位在豐田工作的朋友,他說豐田的東西,總要反覆測試很多遍,確認其可靠性足夠高的時候才會推出市場。這句話的真實性仍有待考究,但聯想起豐田總是慢條斯理的推出新的量產車技術,也確實不無道理,這種也許不應該叫“守舊”,更應該稱之為謹慎。

新晉探花-別克

別克這次終於揚眉吐氣,成為了美系車裡面唯一進入這個排行榜前三名的品牌。《消費者報告》分析認為,別克能夠排進前三名與該品牌的車型數量有限也有一定關係。該品牌沒有任何一款皮卡,或者皮卡基礎上的SUV車型。

車型的搭配和數量對別克在可靠性方面的整體表現有一定的影響,但那主要是指美國市場。至於國內市場,別克的英朗、昂科威等車輛的投訴比例相對來說還是比較高,當然,主要的投訴項目都是电子系統等的功能故障,實際上針對三大件的投訴項目並不多。從這些綜合表現來看,別克能夠進入可靠性排行榜的第三位,並不是空穴來風。

狀態有下滑-本田

一直口碑都不錯的本田,在今年的可靠性排行榜就跌到了第十位。這是有跡可循的,像不久前思域因电子停車故障在美國的召回,以及再之前的高田氣囊事件,除此以外,本田近年來在變速箱和混動系統方面的研發動作實在很多,車企也如人,精力是有限的。所以種種原因,就造成了本田現在這個局面。

認為,

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

以上的事件的確體現了本田在質量管理方面存在缺點,但在眼裡本田車依舊是耐用、毛病少的經典日系品牌。關注二手車市場的人就知道了,本田的飛度、雅閣、CRV等車在二手車市場的保值率是相當高的,希望本田能快點自我調整。實際上本田的可靠性依然處於較高的水準,特別是自吸+CVT的那些經典車型。

後來不居上-特斯拉

留意榜單靠後的位置,你會發現一個新面孔,它就是特斯拉,第一年參加這次調查的特斯拉,排名就來到了第25位,屬於“不可靠的品牌”。特斯拉被評為不可靠的品牌,主要是因為Model X在這一年來的各種問題:包括車門、剎車、座椅等等,Model X身上的功能太過複雜,以至於可靠性無從談起。還記得當初試駕Model X的時候,就發現其鷗翼門在關閉的時候會有明顯的異響,港真,這個價位的車,真不應該出現這樣的情況。

有辣有不辣-德系陣營

至於我們都比較熟悉的德系車,除了奧迪是第4名以外,其餘的寶馬、奔馳、保時捷之類的車則被評為“一般可靠的品牌”,而大眾就更慘,去到22名,比特斯拉好不了多少。

德系車排名不高也是正常,畢竟德系車的小問題多已經不是一天两天的事情。像燒機油啊、乾式雙離合的可靠性不夠高啊、橡膠件的壽命短導致漏油啊等等,說起德系車的小問題真的一籮籮,甚至有些人已經默許了這些問題的存在,足前這些問題的普及性。當然,這也不是絕對的,駕駛和保養得當的話,德系車也有很耐操的,身邊就有一位帕薩特車主,六萬多公里了,小毛病卻並沒有讓他如此這般的糟心。

墊底先生-FCA菲亞特克萊斯勒集團

美國人做的一個榜單,一些典型的美國車反而墊底了,像菲亞特克萊斯勒集團旗下的道奇、克萊斯勒、菲亞特、Ram。還好,這些車在國內的熱度並不高。而曝光度比較高Jeep在FCA集團裏面也算是表現較好的了。

從這個榜單不難看出,按可靠性來看的話,日系靠前,過來就是德系,而美系就幾乎都墊底(別克除外)。認為,《消費者報告》的這個可靠性排行榜雖然有一定的參考意義,但世界上沒有絕對高可靠性的車,還是要提醒一句,無論什麼系的車,想它耐操點的話,車主的悉心愛護才是最重要的。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

研究:大規模封城 歐洲逾300萬人避免染疫喪命_台中搬家

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

摘錄自2020年6月8日中央社報導

倫敦帝國學院今(8日)發表的研究顯示,歐洲多國實施包括商店歇業與學校停課等大規模封城措施,降低新型冠狀病毒傳染率,足以抑制疫情擴散,可能使得超過300萬人免於染疫喪命。

英國倫敦帝國學院(Imperial College London)的科學家表示,針對11國封城影響的模擬研究顯示,主要從3月分開始實施的嚴格封城措施,產生「重大效應」,且有助於5月初把基本傳染數(R0)降至1以下。

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

另一項美國科學家的研究發現,估計中國、韓國、義大利、伊朗、法國和美國實施的封城措施,預防或延遲約5億3000萬個2019冠狀病毒疾病(COVID-19,武漢肺炎)感染病例。美國與英國帝國學院主導的研究,都刊登在科學期刊「自然」(Nature)。

國際新聞
武漢肺炎
疫情
封城

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

小米電視棒通過 NCC 認證:隨身串流影音播放器,內建 Google 助理與 Chromecast ,有望於近日在台開賣_台中搬家

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

去年夏天,小米在海外市場推出了「Mi TV Stick(小米電視棒)」這款小巧的串流影音播放器產品,日前這款產品也以「小米電視棒」為命名悄悄通過 台灣 NCC 認證,有望於今年上半年在台灣開賣。若未來引進台灣後,也將是小米在台灣繼小米盒子、小米智慧顯示器後,再次又有影音播放設備在台推出。

▲圖片來源:Mi Global

小米電視棒通過 NCC 認證:隨身串流影音播放器,內建 Google 助理與 Chromecast ,有望於近日在台開賣

除了用手機、平板、電腦播放線上串流影音平台的娛樂內容,若想連接電視或顯示器進行播放,在追求便宜、體積小的選擇除了台灣尚未正式引進台灣的「Chromecast with Google TV 」之外,小米電視棒則是另一項不錯的選擇。無奈之前小米電視棒在海外發表後,當時無法確定是否有機會引進台灣,不過近日筆者發現其實小米台灣已經悄悄申請,讓小米電視棒通過 NCC 認證囉!也代表在今年,小米電視棒就有機會正式在台灣開賣。

▲圖片來源:NCC

雖然比較規格,小米電視棒可能不如自家的小米盒子S ,不過對於單純想讓家中未支持 Android TV 系統的傳統電視或顯示器,升級成能直接播放 YouTube、Netflix 等線上串流影音服務的需求,小米電視棒機身尺寸只有 92.4mm*30.2mm*15.2mm ,重量更只有 28.5g ,光是體積輕巧這點就顯得更加方便。
另外,小米電視棒在機身上直接有 HDMI 頭,用戶不必另外連接一條長長的 HDMI 線就可直接將小米電視棒予顯示設備進行連接:

▲圖片來源:NCC

從 NCC 認證資料中可以看到小米電視棒標配 5W 輸出的 USB 充電器,當然用戶也能使用其他充電設備為小米電視棒進行供電:

▲圖片來源:NCC

小米電視棒在影像畫質方面支持 1080P 解析度,只要先將小米電視棒和電視/顯示器連接,接著將讓小米電視棒連上 Wi-Fi 網路就能開始使用。

▲圖片來源:Mi Global

硬體規格方面,小米電視棒搭載 Quad-core Cortex-A53 四核心 CPU 、ARM Mali-450 GPU ,配備 1GB RAM 和 8GB ROM。應用方面,小米電視棒運行 Android TV 9 作業系統,除內建 Google 語音助理讓用戶可透過搭配的遙控器上的快捷按鍵,一鍵喚醒 Google 語音助理進行語音搜尋、詢問天氣等應用。

▲圖片來源:Mi Global

在遙控器與小米盒子、智慧顯示其相同,除一般常用按鍵也具備 Netflix 與 Amazon Prime Video 快捷鍵,方便用戶更快開啟這兩種串流影音平台觀賞影片。

▲圖片來源:Mi Global

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

用戶可透過 Google Play 商店下載各種常用的線上串流影音應用程式:

▲圖片來源:Mi Global

此外,小米電視棒也內建 Chromecast ,讓使用者可將智慧型手機、平板電腦或筆電的影音播放訊號投放到小米電視棒進行播放:

▲圖片來源:Mi Global

延伸閱讀:
LINE 17 款免費貼圖整理:《開著餐車交朋友》的獨家Q版貼圖、Lady Dior 期間限定等實用貼圖免費下載!

小米智慧攝影機雲台版2K 在台開賣:升級 2K 高畫質和 F1.4 大光圈,售價 1,095元

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

Google 將限制第三方 Chromium 瀏覽器使用 Chrome 同步 API,3/15 開始實施_台中搬家

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

由於 Chromium 的開放式原始碼特性,現在很多第三方瀏覽器都是基於這個核心開發而成,讓用戶有 Chrome 以外的其他瀏覽器選擇性,也因為豐富的 API 使得這些第三方瀏覽器擁有許多和 Chrome 不相上下的好用功能,其中當然包含同步,不過Google 日前宣布將從 3/15 起開始審核並限制這些同步 API。

Google 將限制第三方 Chromium 瀏覽器使用 Chrome 同步 API,3/15 開始實施

Google 在一篇部落格文章中宣布,將限制那些訪問個人資訊的 Chrome API,這些 API 支援與 Chrome 同步和點擊叫出等功能,以便在瀏覽器中使用它們。Google 表示,一些第三方瀏覽器用戶可以在該瀏覽器中登入自己的 Google 帳戶,並且在第三方瀏覽器中儲存並檢閱其 Chrome 同步數據,其中的數據包含書籤、密碼等。

顯然 Google 並不喜歡這種情況發生,表明將從 3/15 開始進行 API 的限制。對於已經使用過這些功能的用戶,其數據還是可以在 Google 帳戶中使用,並且將繼續儲存在第三方瀏覽器的本機端,如果想要繼續使用受限的功能,用戶唯一的辦法只有切換使用 Google 本家的 Chrome 瀏覽器。

現在流行的 Microsoft Edge、Opera、Vivaldi 和 Brave瀏覽器等,都是建立在 Chromium 的核心基礎上,但這些大型公司所出品的瀏覽器都具備獨立的同步功能,因此受到的影響較低,不過之後會限制是否會影響到主流瀏覽器或繼續擴展到其他部分,那就靜待觀察了。

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

◎資料來源:Google

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

海洋升溫致白化 大堡礁25年內半數珊瑚死亡_台中搬家

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

摘錄自2020年10月14日自由時報報導

澳洲大堡礁(Great Barrier Reef)是世界最大的珊瑚礁群,但受到地球暖化影響全球生態,最新研究顯示,大堡礁在過去25年內,有半數的珊瑚死亡,科學家也警告,氣候變遷正對海洋生態系統造成不可逆的破壞。

綜合外媒報導,位在澳洲東北海岸的大堡礁1981年被列入世界自然遺產,根據刊登在《皇家學會報告》(Proceedings of the Royal Society Journal)的最新研究,1990年代中期以來,大堡礁各個珊瑚群正在以驚人的速度減少,其中以較大的珊瑚物種影響最大,幾乎從大堡礁北部消失。

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

研究合著者、詹姆士庫克大學的狄澤爾(Andy Dietzel)提到,研究發現大堡礁的復原能力和過去相比,受到嚴重損害,因為幼年珊瑚減少,能夠繁衍的珊瑚也減少。休斯則表示,除非各國履行《巴黎協議》的承諾,否則珊瑚將持續消失。休斯指出,對於生長快的物種,恢復時間大約需要10年時間,在溫度持續上升的情況下,會不斷出現白化事件,獲得復育的機率幾乎為零。

生物多樣性
氣候變遷
國際新聞
澳洲
珊瑚白化

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

微軟 Surface Hub 2S 在台推出,滿足視訊會議、團隊協作與商務需求_台中搬家

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

自從 COVID-19 疫情爆發以來,遠距工作、混合式辦公模式已經是全球企業商務的新工作型態,為了因應延伸出來更多與過去工作型態不一樣的需求,微軟在今日(1/21)的發表會中,正式宣佈在台灣推出 Surface Hub 2S 這款將視訊會議與各種商務用途集於一身的新品。

微軟 Surface Hub 2S 在台推出,滿足視訊會議、團隊協作與商務需求

Surface Hub 2S 整合了傳統會議室中的投影設備、會議是白板與視訊通訊解決方案等茸硬體配置,以提供團隊成員線上與實體的參與度,幫助企業解決在疫情期間遠距溝通與團隊協作大幅提升的困難,維持高生產力。

Surface Hub 2S 共推出兩種版本,分別為 50 吋與 85 吋。搭載 4K+ 解析度觸控顯示器與 4K 鏡頭,擁有 90 度的視角,在中型會議室裏面可無死角地呈現會議現場,讓遠端連線的對象可完整而清晰地看見會議中的與會人員。鏡頭還可利用配置在螢幕上、左、右三側的 USB-C 更換裝設位置,內建遠場麥克風可直接對會議現場進行收音,範圍可達 5 – 6 公尺,並且透過立體聲喇叭提供用戶最加聲音體驗,無須另外安裝收音麥克風等設備。網路連線部分可支援有線網路線與 WiFi 網路,讓會議隨時保時連線不中斷。另外,為了提供更靈活的協作,Surface Hub 2S 配備有 Surface Hub 2 手寫筆,在會議中讓你發揮最佳表現。

在螢幕後方即為主機裝置,運行完整如筆電般的 Windows 10 的體驗,讓用戶可以更直覺地操作,讓使用者可流暢地在筆電與 Surface Hub 2S 之間切換,根據官方人員的介紹,位於螢幕後方一體式的主機部分除配有豐富的連接埠外採可抽取式設計,未來用戶可以依照需求升級系統內部配備,因應科技推進的腳步讓生產力蒸蒸日上。

Surface Hub 2S 50 吋版本售價訂為新台幣 298,788 元,即日起開始銷售,85 吋款則即日起同步開放預購。

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

同場加映:Surface Pro 7+ 商務版同步上市

近日最新推出的 Surface Pro 7+ 商務版也宣布於今日在台上市,共有 WiFi 版與 LTE Advances 兩種版本。採用了最新的第 11 代Intel Core 處理器,處理效能提升 2.1 倍,續航力最長可達 15 小時,為人們提供了所需的效能,讓他們能夠隨時隨地展開工作。此外, Surface Pro 7+ 商務版配有 USB-A 和 USB-C 兩個連接埠,可外接顯示器與所需的周邊設備打造完整的工作體驗。在 Surface Pro 7+ 商務版上搭載了支援 1080p 高畫質的前置和後置鏡頭以及 Dolby Atmos 喇叭和雙重遠場麥克風,讓大家可以互相看見、聽見。

Surface Pro 7+ 商務版採用了更為輕盈、永續性的商業包裝。此包裝比上一代輕了 23%,由 99% 的天然纖維材料製成,其中 64% 採用了可回收材料。此外,首次提供了從開機就有的 Windows 增強硬體安全功能,從初期部署到整個裝置的生命週期,客戶都可以透過雲端服務來對 Surface 裝置進行管理和更新,無需讓 IT 人員親自接觸裝置,這有助於保護身份資訊,並防禦惡意驅動程式和供應鏈的攻擊。


Surface Pro 7+ 商務版還搭載了可拆卸式固態硬碟來保存資料,以滿足企業和教育組織的安全和隱私需求,此功能與微軟 BitLocker 保護功能相互結合,使客戶可以在裝置發生問題時尚可儲存資料。這款新機售價訂為 29,088 元起,即日起可洽詢經銷購買。

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

Spring AOP學習筆記01:AOP概述_台中搬家

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

1. AOP概述

  軟件開發一直在尋求更加高效、更易維護甚至更易擴展的方式。為了提高開發效率,我們對開發使用的語言進行抽象,走過了從彙編時代到現在各種高級語言繁盛之時期;為了便於維護和擴展,我們對某些相同的功能進行歸類並使之模塊化,衝出了最初的”原始部落”,走過了從過程化編程到面向對象編程(OOP)的”短暫而漫長”的歷程。但不管走過的路有多長,多麼坎坷,我們一直沒有停止尋找更加完美、更加高效的軟件開發方法,過去如此,現在亦然。

  當OOP被提出來,以取代過去基於過程化編程的開發方法時,或許那個時代的人都會以為,面向對象編程和面向對象的軟件開發就是我們一直追求的那顆能夠搞定一切的”銀彈”。但不得不承認的是,即使面向對象的軟件開發模式,依然不能很好地解決軟件開發中的所有問題。

  軟件開發的目的,最終是為了解決各種需求,包括業務需求和系統需求。使用面向對象方法,我們可以對業務需求等普通關注點進行很好的抽象和封裝,並且使之模塊化。但對於系統需求(比如日誌記錄、權限驗證、事務管理等)一類的關注點來說,情況卻有所不同。

  對於業務需求而言,需求與其具體實現之間的關係基本上是一對一的。我們可以在系統中某一個確定的點找到針對這種需求的實現,無論從開發還是維護的角度,都比較方便。比如電商系統中的賬戶管理模塊、訂單模塊、支付模塊等,可以很容易地按照功能劃分模塊並完成開發。

  但是,事情並沒有結束!開發中為了調試或在進入生產環境後為了對系統進行監控,我們需要為這些業務需求的實現對象添加日誌記錄功能;或者,業務方法的執行需要一定的權限限制,那麼方法執行前肯定需要有相應的安全檢查功能。而這些則屬於系統需求的範疇。雖然需求都很明確(加入日誌記錄、加入安全檢查),但是要將這些需求以面向對象的方式實現並集成到整個的系統中去,可就不是一個需求對應一個實現那麼簡單了,系統中的每個業務對象都需要加入日誌記錄,加入相應的安全檢查,那麼,這些需求的實現代碼就會遍及所有業務對象。

  對於系統中普通的業務關注點,OOP可以很好地對其進行分解並使之模塊化,但卻無法更好地避免類似於系統需求的實現在系統中各處散落這樣的問題。所以,我們要尋求一種更好的方法,它可以在OOP的基礎上更上一層樓,提出一套全新的方法論來避免以上問題,也可以提供某種方法對基於OOP的開發模式做一個補足,幫助OOP以更好的方式解決以上問題。迄今為止,我們還找不到比OOP更加有效的軟件開發模式。不過,我們找到了後者,那就是AOP,對OOP的補足。

  AOP全稱為Aspect-Oriented Programming,中文通常翻譯為面向方面編程。使用AOP,我們可以對類似於Logging和Security等系統需求進行模塊化的組織,簡化系統需求與實現之間的對比關係,進而使得整個系統的實現更具模塊化。

  對於一個軟件系統而言,日誌記錄、安全檢查、事務管理等系統需求就像一把把刀“惡狠狠”地橫切到我們組織良好的各個業務功能模塊之上。以AOP的行話來說,這些系統需求是系統中的橫切關注點(cross-cutting concern)。使用傳統方法,我們無法更好地以模塊化的方式,對這些橫切關注點進行組織和實現。所以AOP引入了Aspect的概念,用來以模塊化的形式對系統中的橫切關注點進行封裝。Aspect 之對於AOP,就相當於Class之對於OOP。我們說過AOP僅是對OOP方法的一種補足,當我們把以Class形式模塊化的業務需求和以Aspect形式模塊化的系統需求拼裝到一起的時候,整個系統就算完成了。

 

2. AOP相關概念

  在進一步學習Spring AOP之前,我們還需要了解一下AOP涉及的相關概念:

2.1 切點(JoinPoint)

  在系統運行之前,AOP的功能模塊都需要織入到OOP的功能模塊中。所以,要進行這種織入過程,我們需要知道在系統的哪些執行點上進行織入操作,這些將要在其之上進行織入操作的系統執行點就稱之為切點(Joinpoint)。對應到spring中可以理解為具體攔截的某個業務點。

  以下是一些較為常見的Joinpoint類型

  • 方法調用(Method Call)。當某個方法被調用的時候所處的程序執行點。
  • 方法調用執行(Method Call execution)。也可以稱之為方法執行,該Joinpoint類型代表的是某個方法內部執行開始時點,這需要與上面的方法調用類型的Jointpoint進行區分。方法調用(method call)是在調用對象上的執行點,而方法執行(method execution)則是在被調用到的方法邏輯執行的時點,對於同一對象,方法調用要先於方法執行。
  • 構造方法調用(Constructor Call)。程序執行過程中對某個對象調用其構造方法進行初始化的時點。
  • 構造方法執行(Constructor Call Execution)。構造方法執行和構造方法調用之間的關係類似於方法執行和方法調用之間的關係,指的是某個對象構造方法內部執行的開始時點。
  • 字段設置(Field Set)。對象的某個屬性通過setter方法被設置或者直接被設置的時點。
  • 字段獲取(Field Get)。對象的某個屬性通過getter方法獲取或者直接訪問的時點。
  • 異常處理(Exception Handler Execution)。在某些類型異常拋出后,對應的異常處理邏輯執行的時點。
  • 類初始化(Class initialization)。類中某些靜態類型或者靜態塊的初始化時點。

  基本上程序執行過程中你認為必要的執行時點都可以作為Joinpoint,但是對於一些位置,具體的AOP實現產品在捕捉的時候可能存在一定的困難,或者能夠實現但付出太多卻可能收效甚微。在Spring AOP中最常見的就是前面的方法執行類型的Joinpoint。

2.2 切面(Pointcut)

  Pointcut概念代表的是JointPoint的表述方式。將橫切邏輯織入當前系統的過程中,需要參照Pointcut規定的Jointpoint信息,才可以知道應該往系統的哪些Joinpoint上織入橫切邏輯。

一個Pointcut可以指定系統中符合條件的一組Joinpoint,但是其是如何來指定的呢?通常有如下幾種方式:

  • 直接指定Joinpoint所在方法名稱。這種形式的Pointcut表述方式比較簡單,而且功能單一,通常只限於支持方法級別Joinpoint的AOP框架。並且這種方式只能一個一個指定,所以通常只限於Joinpoint較少且較為簡單的情況。

  • 正則表達式。這是比較普遍的Pointcut表達方式,可以充分利用正則表達式的強大功能來歸納表述符合某種條件的多組Joinpoint。幾乎現在大部分的Java平台的AOP產品都支持這種形式的Pointcut表達形式,包括Jboss AOP、Spring AOP以及AspectWerkz等。

  • 使用特定的Pointcut表述語言。這是一種最為強大的表達Pointcut的方式,很靈活,但具體實現起來可能會很複雜,需要設計該表述語言的語法,實現相應的解釋器等許多工作。AspectJ使用這種方式來指定Pointcut,它提供了一種類似於正則表達式的針對Pointcut的表述語言,在表達Pointcut方面支持比較完善,而且Spring 2.0之後也是支持這種方式。

2.3 通知(Advice)

  Advice是單一橫切關注點邏輯的載體,它代表將會織入到Joinpoint的橫切邏輯。如果將Aspect比作OOP中的Class,那麼Advice就相當於Class中的Method。

  按照Advice在Jointpoint位置執行時機的差異或者完成功能的不同,Advice可以分成多種具體形式。

  • Before Advice

  Before Advice是在Joinpoint指定位置之前執行的Advice類型。通常,它不會中斷程序執行流程,但如果必要,可以通過在Before Advice中拋出異常的方式來中斷當前程序流程。如果當前Before Advice將被織入到方法執行類型的Joinpoint,那麼這個Before Advice就會先於方法執行而執行。   通常,可以使用Before Advice做一些系統的初始化工作,比如設置系統初始值,獲取必要系統資源。

  • After Advice

  顧名思義,After Advice就是在相應連接點之後執行的Advice類型,但該類型的Advice還可以細分為三種:

  After returning Advice。只有當前Joinpoint處執行流程正常完成后,After returning Advice才會執行。

  After throwing Advice。又稱Throws Advice,只有在當前Joinpoint執行過程中拋出異常的情況下,才會執行。比如某個方法執行類型的Joinpoint拋出某異常而沒有正常返回。

  After Advice。或許叫After (Finally) Advice更為確切,該類型Advice不管Joinpoint處執行流程是正常終了還是拋出異常都會執行,就好像Java中的finally塊一樣。

  • Around Advice

  Around Advice對附加其上的Joinpoint進行”包裹”,可以在Joinpoint之前和之後都指定相應的邏輯,甚至於中斷或者忽略Joinpoint處原來程序流程的執行。

2.4 Aspect

  Aspect是對系統中的橫切關注點邏輯進行模塊化封裝的AOP概念實體,可以理解為攔截器類,其中會定義切點以及攔截處理邏輯。通常情況下,Aspect可以包含多個Pointcut以及相關Advice定義。在Spring中,是通過使用@AspectJ註解並結合普通POJO來聲明Aspect的。

@AspectJ
public class AspectClass{
    // pointcut 定義

    // advice 定義
}

2.5 目標對象

  符合Pointcut所指定的條件,將在織入過程中被織入橫切邏輯的對象,稱為目標對象(Target Object)。

 

3. Spring AOP

  AOP只是一種理念,要實現這種理念,通常需要一種現實的方式。Spring AOP就是一款AOP的實現產品,Spring AOP是Spring核心框架的重要組成部分,通常認為它與Spring的IoC容器以及Spring框架對其他JavaEE服務的集成共同組成了Spring框架的”質量三角”,足見其地位之重要。

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

  在Java語言的基礎之上,Spring AOP對AOP的概念進行了適當的抽象和實現,使得每個AOP的概念都可以落到實處,在詳細學習Spring AOP概念實體之前,我們有必要先看一下其是如何運作的。

  Spring AOP從最初發布以來,一直延續了最初的設計,也就是採用動態代理機制和字節碼生成技術來實現基於Java語言的簡單而強大的AOP框架。與最初的AspectJ採用編譯器將橫切邏輯織入目標對象不同,動態代理機制和字節碼生成都是在運行期間為目標對象生成一個代理對象,再將橫切邏輯織入到這個代理對象中,系統最終使用的是織入了橫切邏輯的代理對象,而不是真正的目標對象。

  要理解這種差別以及最終可以達到的效果,有必要先從動態代理機制的根源–代理模式(Proxy Pattern)開始說起。。。

 

3.1 設計模式之代理模式

  說到代理,舉幾個簡單的例子,比如房地產中介就是一種代理,我們偶爾使用的網絡代理也是一種代理,類似例子很多,就不一一列舉了。代理處於訪問者與被訪問者之間,可以隔離這兩者之間的直接交互,訪問者與代理打交道就好像在跟被訪問者在打交道一樣,因為代理通常幾乎會全權擁有被代理者的職能,代理能夠處理的訪問請求就不必要勞煩被訪問者來處理了。從這個角度來講,有兩個好處:

  • 代理可以減少被訪問者的負擔;
  • 即使代理最終要將訪問請求轉發給真正的被訪問者,它也可以在轉發訪問請求之前或者之後加入特定的邏輯,比如安全訪問限制;

  在軟件系統中,代理機制的實現有現成的設計模式支持,即代理模式。在代理模式中通常涉及4種角色:

  • ISubject。該接口是對被訪問者或者被訪問資源的抽象。在嚴格的設計模式中,這樣的抽象接口是必須的。
  • SubjectImpl。這是被訪問者或者被訪問資源的具體實現類。如果你要訪問某位明星,那麼SubjectImpl就是你想要訪問的明星;如果你想要買房子,那麼SubjectImpl就是房主。
  • SubjectProxy。這是被訪問者或者被訪問資源的代理實現類,該類持有一個ISubject接口的具體實例。在這個場景中,我們要對SubjectImpl進行代理,那麼SubjectProxy現在持有的就是SubjectImpl的實例。
  • Client。這代表訪問者的抽象角色,Client將會訪問ISubject類型的對象或者資源。在這個場景中,Client將會請求具體的SubjectImpl實例,但Client無法直接請求其真正要訪問的資源SubjectImpl,而是必須通過ISubject資源的訪問代理類SubjectProxy進行。

  SubjectImpl和SubjectProxy都實現了相同的接口ISubject,而SubjectProxy內部持有SubjectImpl的引用。當Client通過request()請求服務的時候,SubjectProxy將轉發該請求給SubjectImpl。從這個角度來說,SubjectProxy反而有多此一舉之嫌了,不過SubjectProxy的作用不只局限於請求的轉發,更多時候是對請求添加更多訪問限制。SubjectImpl和SubjectProxy之間的調用關係如下代碼所示:

public class SubjectProxy implements ISubject{
    private ISubject subject;   // Inject SubjectImpl to SubjectProxy
    public String request(){
        // add pre-process logic if necessary

        String originalResult = subject.request();

        // add post process logic if necessary

        return "Proxy:" + originalResult;
    }
    public ISubject getSubject(){
        return subject;
    }
    public void setSubject(ISubject subject){
        this.subject = subject;
    }
}

public class SubjectImpl implements ISubject{
    public String request(){
        // process logic
        return "OK";
    }
}

  在將請求轉發給被代理對象SubjectImpl之前或者之後,都可以根據情況插入其他處理邏輯,比如在轉發之前記錄方法執行開始時間,在轉發之後記錄結束時間,這樣就能夠對SubjectImpl的request()執行的時間進行檢測。或者,可以只在轉發之後對SubjectImpl的request()方法返回結果進行覆蓋,返回不同的值。甚至,可以不做請求轉發,這樣,就不會有SubjectImpl的訪問發生。

  代理對象SubjectProxy就像是SubjectImpl的影子,只不過這個影子通常擁有更多的功能。如果SubjectImpl是系統中Jointpoint所在的對象(即目標對象),那麼就可以為這個目標對象創建一個代理對象,然後將橫切邏輯添加到這個代理對象中。當系統使用這個代理對象的時候,原有邏輯的實現和橫切邏輯就完全融合到一個系統中。

  Spring AOP本質上就是採用這種代理機制實現的,但是,具體實現細節上有所不同。我們來看一下上面的代理實現,我們是將代理類直接寫好,然後在代碼中手動初始化代理類並通過調用代理類來實現代理功能,發現沒有,如果系統裏面有很多類需要代理相同的能,那麼我們就要寫很多的代理類,儘管它們代理的內容是一樣的,這樣是有問題的。上面這種為對應的目標對象創建靜態代理的方法,原理上是可行的,但具體應用上存在問題,所以要尋找其他方法,那有沒有呢,答案是肯定有的,就是接下來我們要講的動態代理。

 

3.2 動態代理

  JDK1.3之後,引入了動態代理(Dynamic Proxy)機制,可以在運行期間,為相應的接口(Interface)動態生成對應的代理對象,從而幫助我們走出最初使用靜態代理實現AOP的窘境。

  動態代理機制的實現主要由一個類和一個接口組成,即java.lang.reflect.Proxy類和java.lang.reflect.InvocationHandler接口。InvacationHandler就是我們實現橫切邏輯的地方,它是橫切邏輯的載體,作用跟Advice是一樣的。所以在使用動態代理機制實現AOP的過程中,我們可以在InvocationHandler的基礎上細化程序結構,根據Advice的類型,分化出對應不同的Advice類型的程序結構。

  所以,我們可以將橫切關注點邏輯封裝到動態代理的InvocationHandler中,然後在系統運行期間,根據橫切關注點需要織入的模塊位置,將橫切邏輯織入到相應的代理類中。以動態代理類為載體的橫切邏輯,現在當然就可以與系統其他實現模塊一起工作了。

  動態代理雖好,但不能滿足所有的需求,這種方式實現的唯一缺點或者說優點就是,所有需要織入橫切關注點邏輯的模塊類都得實現相應的接口,因為動態代理機制只針對接口有效。如果某個類沒有實現任何的接口,就無法使用動態代理機製為其生成相應的動態代理對象。對於沒有實現任何接口的目標對象我們需要尋找其他方式為其動態的生成代理對象。

  默認情況下,Spring AOP發現目標對象實現了相應接口,則採用動態代理機製為其生成代理對象實例。而如果目標對象沒有實現任何接口,Spring AOP則會嘗試使用一個稱為CGLIB(Code Generation Library)的開源的動態字節碼生成類庫,為目標對象生成動態的代理對象實例。

 

3.3 動態字節碼增強

  使用動態字節碼生成技術擴展對象行為的原理是,我們可以對目標對象進行繼承擴展,為其生成相應的子類,而子類可以通過覆寫來擴展父類的行為,只要將橫切邏輯的實現放到子類中,然後讓系統使用擴展后的目標對象的子類,就可以達到與代理模式相同的效果了。

  但是使用繼承的方式來擴展對象定義,也不能像靜態代理模式那樣,為每個不同類型的目標對象都單獨創建相應的擴展子類。所以,我們要藉助於CGLIB這樣的動態字節碼生成庫,在系統運行期間動態地為目標對象生成相應的擴展子類。

  我們知道,Java虛擬機加載的文件都是符合一定規範的,所以,只要交給Java虛擬機運行的文件符合Java class規範,程序的運行就沒有問題。通常的class文件都是從Java源代碼文件使用Javac編譯器編譯而成的,但只要符合Java class規範,我們也可以使用ASM或者CGLiB等Java工具庫,在程序運行期間,動態構建字節碼的class文件。

  在這樣的前提下,我們可以為需要織入橫切邏輯的模塊類在運行期間,通過動態字節碼增強技術,為這些系統模塊類生成相應的子類,而將橫切邏輯加到這些子類中,讓應用程序在執行期間使用從這些動態生成的子類,從而達到將橫切邏輯織入系統的目的。   使用動態字節碼增強技術,即使模塊類沒有實現相應的接口,我們依然可以對其進行擴展,而不用像動態代理那樣受限於接口。不過,這種實現機制依然存在不足,如果需要擴展的類以及類中的實例方法等聲明為final的話,則無法對其進行子類化的擴展。

 

3.4 一個spring aop示例

  上面說了這麼多,下面就來看一個簡單的例子,體會一下aop的魔法吧。如果只是引用了spring-context,那麼還需要引入spring-aspects:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>3.2.18.RELEASE</version>
</dependency>

  這裏我們採用xml配置的方式來開啟aop功能,在resources目錄下添加一個xml配置文件,其中<aop:aspectj-autoproxy/>是用來開啟aop的:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://www.springframework.org/schema/beans"
       xmlns:aop = "http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
     http://www.springframework.org/schema/aop
     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
     
     <aop:aspectj-autoproxy/>
     
     <bean id = "test" class = "spring.aop.TestAopBean"/>
     <bean class = "spring.aop.AspectJTest"/>
</beans>

  添加Aspect:

@Aspect
public class AspectJTest {

    @Pointcut("execution(* *.test(..))")
    public void test(){
        
    }

    @Before("test()")
    public void beforeTest(){
        System.out.println("beforeTest");
    }
    
    @After("test()")
    public void afterTest(){
        System.out.println("afterTest");
    }

    @Around("test()")
    public Object aroundTest(ProceedingJoinPoint p){
        System.out.println("before1");
        Object o = null;
        try{
            o = p.proceed();
        }catch (Throwable e){
            e.printStackTrace();
        }
        System.out.println("after1");
        return o;
    }
}

  添加測試類:

public class TestAopBean {

    private String testStr = "testStr";

    public String getTestStr(){
        return testStr;
    }

    public void setTestStr(String testStr){
        this.testStr = testStr;
    }

    public void test(){
        System.out.println("hello test");
    }
    
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("aspectJTest.xml");
        TestAopBean test = (TestAopBean)ctx.getBean("test");
        test.test();
    }
}

  可以看到輸出結果:

before1
beforeTest
hello test
after1
afterTest

  這是一個aop簡單示例,我們寫了一個切面(Pointcut),用來指定Joinpoint的位置在執行test()方法時;同時分別定義了三個Advice(Before、After、Around)用來指定要織入的動作,最後將Pointcut和Advice封裝到一個Aspect中,這樣就完成了橫切邏輯的織入。

 

4. 總結

  在深入學習Spring AOP之前,我們先對AOP的概況進行了介紹,接着一起探索了Spring AOP的實現機制,包括最原始的代理模式,直至最終的動態代理與動態字節碼生成技術。

  • AOP是能夠讓我們在不影響系統原有功能前提下,為軟件系統橫向擴展功能;
  • Spring AOP通過兩種方式實現:JDK動態代理、動態字節碼增強;

  在了解了這些內容之後,我們將繼續深入學習Spring AOP。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

日貨輪漏油浩劫清污近完成 重點轉向紅樹林等生態_台中搬家

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

摘錄自2020年8月18日中央廣播電台報導

一艘日本散裝貨輪在7月25日觸礁,造成約1000噸燃料油外洩,環保人士稱這是該國史上最嚴重的生態災難,導致許多野生生物死亡並對海域造成破壞。

該小組副組長武市圭司(Keiji Takechi,音譯)在模里西斯東南部城市馬可邦(Mahebourg)的線上記者會上說,「隨著大部分的海上漏油被回收,我們正進入下一階段,重點是清理海岸並最大程度地減少對環境的影響。」他並補充說,「現在需要能提供建議和指導的環境專家。」

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

科學家說,漏油事件的後續影響仍持續發酵。先前當模里西斯人民紛紛前往事發當地清除浮油和結塊時,看到海面飄著死亡的鰻魚和魚類,羽毛吸附滿油汙的海鳥吃力地爬上岸。

科學家並稱,本次的生態破壞可能會影響模里西斯及其依賴旅遊產業的經濟數十年。

污染治理
國際新聞
模里西斯
漏油
紅樹林

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

我終於搞清了啥是 HTTPS 了_台中搬家

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

引言

最近上海連續下了一周雨,溫度一夜之間回到解放前,穿夏裝的我被凍得瑟瑟發抖,躲在家裡哪也不想去。

在家百無聊賴的刷着網頁,看到公眾號後台的留言,有同學問我 HTTP 和 HTTPS 有啥區別?

這還用問,當然是 HTTPS 要比 HTTP 更加的安全啊,沒看到後面帶着個 S 呢么,帶着 S 就這麼 NB 。

然後同學的下一個問題把我問懵逼了,為啥帶 S 的更安全呢?能詳細的講講么。

我跟你講嗷,不是我吹,我這麼多年。。。。。。

就沒見過你這麼刨根究底的同學,老問這種我也不是很清楚的問題。

雖然這個問題問的我老臉一紅,但是我有一種不要臉的精神 「我不會,但是我可以學」 。

HTTP

首先先來了解下 HTTP :

HTTP 協議全稱為:Hyper Text Transfer Protocol ,翻譯過來就是超文本傳輸協議,請不要質疑這個翻譯,我專門用百度翻譯翻了一下。

TCP/IP 四層模型應該都知道的,有數據鏈路層,網絡層,傳輸層和應用層:

而 HTTP 協議就是位於 TCP/IP 四層模型的應用層上。

這裏很多人都會混淆 TCP 和 HTTP ,實際上 HTTP 是基於 TCP 連接基礎上的。

簡單的說, TCP 就是單純建立連接,不涉及任何我們需要請求的實際數據,簡單的傳輸。而 HTTP 是用來收發數據,即實際應用上來的。

HTTP 協議通過請求和響應在客戶端和服務端之間收發數據,進行通信:

HTTPS

HTTP 協議看起來好像沒啥問題,唯一的問題就是不夠安全,因為 HTTP 協議的傳輸方式完全是由明文傳輸的,不做任何加密,這就讓一些不懷好意的人有了可乘之機。

這種傳輸方式誘發了一種經典的攻擊方式:中間人攻擊。

對於這種情況,最簡單的我們可以使用加密方案,比如使用 AES 加密,服務端和客戶端先約定一個隨機生成的密鑰 key ,後續的通信中,所有的信息都使用這個密鑰進行 AES 加密:

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

這樣雖然後面的通信過程安全了,但是我們在第一發送 AES 密鑰的時候還是存在被中間人攔截的風險,一旦中間人攔截到我們的密鑰,可用對密鑰進行更換或者直接解密請求內容:

這時我們可以使用不對稱加密,來專門對密鑰的傳輸做一次額外的保護。

不對稱加密會有兩個密鑰,一個是公鑰,一個是私鑰。明文可以使用公鑰加密私鑰解密,也可以使用私鑰加密公鑰解密。

現在比較通用的非對稱加密算法有 RSA 。

看到這裏的同學一定在奇怪,既然都使用了不對稱加密,為啥只對 AES 的密鑰做不對稱加密,好像有多此一舉,完全可以對後續所有的通信信息全都使用不對稱加密。

因為不對稱加密相比較對稱加密性能上存在明顯的劣勢,可能你覺得在一個請求中多消耗幾 ms 或者幾 ns 無所謂,但是請求到達服務端是要進行解密,每個請求都多消耗幾 ms 累計起來還是非常可觀的。

上面這個方案看起來已經很安全了,中間人即使攔截到我們的公鑰,由於不知道我們的私鑰貌似也沒辦法解密。

實際上中間人完全不需要解密我們的信息,他可以生成一對新的公私鑰發送給客戶端進行攻擊,後續客戶端的通信中間人使用自己創造的私鑰進行解密,然後通過服務端生成的公鑰進行加密返回給服務端:

CA 證書

上面的問題我們僅通過客戶端和服務端已經沒辦法了,這時候需要引入新的第三方機構,一個頒發 CA 證書的機構。

常見的第三方 CA 機構有:Symantec(賽門鐵克),Comodo(科莫多),GeoTrust(環度網信),GoDaddy,Thawte,daoRapidSSL 等等。

在中間人攻擊中,我們遇到的問題不是加密算法不夠神奇,不是密鑰方式不夠嚴謹,而是我們沒有辦法向我們的客戶端表明我們給他的公鑰是我們的,是不是很像我沒辦法證明我是我的問題。

所以第三方機構應運而生,第三方機構只做一件事情,將服務端的公鑰刻上了我們的名字(CA 證書),客戶端接收到公鑰之後,只需要來第三方機構這裏查詢,就能知道這個公鑰是不是真的服務器,然後再將自己生成的 AES 密鑰使用 CA 證書中解密得到的公鑰進行加密后發送給服務端。

最後服務端使用私鑰解密得到 AES 密鑰,就可以愉快的和客戶端進行通信了。

最後的最後,CA 機構驗證不是每次都要去 CA 機構查詢。這樣做太傻了而且太耗時,尤其是很多 CA 機構的服務都在海外,這樣一來一去消耗的時間太多了。

CA 機構高明的地方就在於,我們去找它註冊公鑰,它會使用另一個來註冊的公司的私鑰對我們的公鑰加密,得到一個我們的公鑰的指紋(全球唯一),然後將這家公司的公鑰信息(其實也是證書)和我們的公鑰以及我們公鑰的指紋打包成一個證書。

當我們使用 HTTPS 將證書下發給客戶端校驗時,客戶端(比如瀏覽器)從證書中看到了上級證書的信息,恰巧這個證書就在瀏覽器(或者本機)中,已經被驗證過是合法的,瀏覽器只要使用這個證書中的公鑰將我們的公鑰指紋進行解密,然後比對我們的公鑰信息就知道我們也是的合法的。因為假證書中的公鑰簽名不可能被合法的上級證書中公鑰解密 。

這段稍微有點繞,慢慢看多看幾次就理解了。

參考

https://www.jianshu.com/p/691b8ba3a70f

https://blog.csdn.net/u010144805/article/details/80803059

https://blog.csdn.net/caofengtao1314/article/details/87912078

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司