0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為何JWT不適合存儲Session

jf_ro2CN3Fa ? 來源:芋道源碼 ? 作者:芋道源碼 ? 2022-11-28 10:23 ? 次閱讀


JSON Web Tokens,又稱 JWT。本文將詳解:為何 JWT 不適合存儲 Session,以及 JWT 引發(fā)的安全隱患。望各位對JWT有更深的理解!

?

原文地址:http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions

?

十分不幸,我發(fā)現(xiàn)越來越多的人開始推薦使用 JWT 管理網(wǎng)站的用戶會話(Session)。在本文中,我將說明為何這是個非常非常不成熟的想法。

為了避免疑惑和歧義,首先定義一些術(shù)語:

  • 無狀態(tài) JWT(Stateless JWT):包含 Session 數(shù)據(jù)的 JWT Token。Session 數(shù)據(jù)將被直接編碼進 Token 內(nèi)。
  • 有狀態(tài) JWT(Stateful JWT):包含 Session 引用或其 ID 的 JWT Token。Session 數(shù)據(jù)存儲在服務(wù)端。
  • Session token(又稱 Session cookie):標準的、可被簽名的 Session ID,例如各類 Web 框架(譯者注:包括 Laravel)內(nèi)已經(jīng)使用了很久的 Session 機制。Session 數(shù)據(jù)同樣存儲在服務(wù)端。

需要澄清的是:本文并非挑起「永遠不要使用 JWT」的爭論 —— 只是想說明 JWT 并不適合作為 Session 機制,且十分危險。JWT 在其它方面的確有其用武之地。本文結(jié)尾,我將簡短地介紹一些合理用途。

首先需要說明

很多人錯誤地嘗試比較 CookiesJWT。這種對比毫無意義,就像對比內(nèi)存和硬盤一樣。Cookies 是一種存儲機制,然而 JWT Tokens 是被加密并簽名后的令牌。

它們并不對立 —— 相反,他們可以獨立或結(jié)合使用。正確的對比應(yīng)當是:Session 對比 JWT,以及 Cookies 對比 Local Storage

在本文中,我將把 JWT Tokens 同 Session 展開對比,并偶爾對比 CookieLocal Storage。這樣的比較才有意義。

基于 Spring Boot + MyBatis Plus + Vue & Element 實現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 視頻教程:https://doc.iocoder.cn/video/

JWT 坊間流傳的優(yōu)勢

在人們安利 JWT 時,常常宣揚以下幾點好處:

  • 易于水平擴展
  • 易于使用
  • 更加靈活
  • 更加安全
  • 內(nèi)置過期時間功能
  • 無需詢問用戶「本網(wǎng)站使用 Cookies」
  • 防止 CSRF 攻擊
  • 更適用于移動端
  • 適用于阻止 Cookies 的用戶

我將會逐條闡述以上觀點為何是錯誤或誤導(dǎo)性的,其中部分解釋可能會有些模糊,這主要是因為這些「好處」的表述本身就比較模糊。

易于水平擴展?

這是列表中唯一一條在技術(shù)層面部分正確的「好處」,但前提是你使用的是無狀態(tài) JWT Tokens。然而事實上,幾乎沒人需要這種橫向擴展能力。有很多更簡單的拓展方式,除非你在運維像淘寶這樣體量的系統(tǒng),否則根本不需要無狀態(tài)的會話(Stateless sessions)。

一些擴展有狀態(tài)會話(Stateful sessions)的例子:

  1. 「在單臺服務(wù)器上運行多個后端進程」 :只需在此服務(wù)器上安裝 Redis 服務(wù)用于存儲 Session 即可。
  2. 「運行多臺服務(wù)器」 :只需一臺專用的 Redis 服務(wù)器用于存儲 Session 即可。
  3. 「在多集群內(nèi)運行多臺服務(wù)器」 :會話保持(又稱:粘滯會話)。

以上所有場景在現(xiàn)有軟件系統(tǒng)內(nèi)都具備良好的支持,你的應(yīng)用需要進行特殊處理的可能性基本為零。

或許你在想,應(yīng)當為你的應(yīng)用預(yù)留更多調(diào)整空間,以防未來需要某些特殊操作。但實踐告訴我們,以后再替換 Session 機制并不困難,唯一的代價是,在遷移后所有用戶將被強制登出一次。我們沒必要在前期實現(xiàn) JWT,尤其是考慮到它所帶來的負面影響。

易于使用?

這個真沒有。你不得不自行處理 Session 的管理機制,無論是客戶端還是服務(wù)端。然而標準的 Session cookies 則開箱即用,JWT 并沒有更簡單。

說白了,目前各種開箱即用的框架并沒有自動集成 JWT,需要研發(fā)人員自行處理。

更加靈活?

我暫時還沒看到有人成功地闡述「JWT 如何更加靈活」。幾乎每個主流的 Session 實現(xiàn),都允許你直接把數(shù)據(jù)存儲進 Session,這跟 JWT 的機制并沒有差別。據(jù)我所知,這只是個流行語罷了。

更加安全?

一大批人認為 JWT Tokens「更加安全」,理由是使用了加密技術(shù)。實際上,簽名后的 Cookies 比未簽名的 Cookies 同樣更加安全,但這絕不是 JWT 獨有的,優(yōu)秀的 Session 實現(xiàn)均使用簽名后的 Cookies(譯者注:例如 Laravel)。

「使用加密技術(shù)」并不能神奇地使某些東西更加安全,它必須服務(wù)于特定目的,并且是針對該目的的有效解決方案。錯誤地使用加密反而可能會降低安全性。

另一個我聽過很多次的對于「更加安全」的論述是「JWT 不使用 Cookies 傳輸 Tokens」。這實在是太荒謬了,Cookie 只不過是一條 HTTP 頭信息,使用 Cookies 并不會造成任何不安全。事實上,Cookies 受到特別良好的保護,用于防止惡意的客戶端代碼。

如果擔心有人攔截掉你的 Session cookies,那你應(yīng)當考慮使用 TLS。如果不使用 TLS,任何類型的 Session 機制都可能被攔截,包括 JWT。

內(nèi)置過期時間功能?

無意義,又沒什么卵用的特性。在服務(wù)端也能實現(xiàn)過期控制,有不少 Session 實現(xiàn)就是這么做的。實際上,服務(wù)端的過期控制更加合理,這樣你的應(yīng)用就可以清除不再需要的 Session 數(shù)據(jù);若使用無狀態(tài) JWT Tokens 且依賴于它的過期機制,則無法執(zhí)行此操作。

這個過期時間在某些場景實際上是增加了復(fù)雜度的。

無需詢問用戶「本網(wǎng)站使用 Cookies」?

完全錯誤。并沒有什么「Cookies 法律」—— 有關(guān) Cookies 的各種法律實際上涵蓋了任何類型「對某項服務(wù)的正常運行非嚴格必須的持久性 ID」,任何你能想到的 Session 機制都包括在內(nèi)。

?

譯者注:然鵝中國并沒有。

?

簡單來說:

  • 若出于系統(tǒng)功能目的使用 Session 或 Token(例如:保持用戶的登錄態(tài)),那么無論怎樣存儲 Session 均無需征得用戶同意。
  • 若出于其他目的使用 Session 或 Token(例如:數(shù)據(jù)分析、追蹤),那么無論怎樣存儲 Session 都需要詢問用戶是否允許。

防止 CSRF 攻擊?

這個真真的沒有。存儲 JWT Tokens 的方式大概有兩種:

  • 「存入 Cookie」 :仍然易受 CSRF 攻擊,還是需要進行特殊處理,保護其不受攻擊。
  • 「其他地方,例如 Local Storage」 :雖然不易受到 CSRF 攻擊,但你的網(wǎng)站需要 JavaScript 才能正常訪問;并且又引發(fā)了另一個完全不同,或許更加嚴重的漏洞。我將在后文詳細說明。

預(yù)防 CSRF 攻擊唯一的正確方法,就是使用 CSRF Tokens。Session 機制與此無關(guān)。

更適用于移動端?

毫無根據(jù)。目前所有可用的瀏覽器幾乎都支持 Cookies,因此也支持 Session。同樣,主流的移動端開發(fā)框架以及嚴謹?shù)?HTTP 客戶端庫都是如此。這根本不是個問題。

適用于阻止 Cookies 的用戶?

不太可能。用戶通常會阻止任何意義上的持久化數(shù)據(jù),而不是只禁止 Cookies。例如,Local Storage 以及任何能夠持久化 Session 的存儲機制(無論是否使用 JWT)。不管你出于多么簡單的目的使用 JWT 都無濟于事,這是另一個完全獨立的問題了。另外,試圖讓身份認證過程在沒有 Cookies 的情況下正常進行,基本沒戲。

最重要的是,禁用掉所有 Cookies 的多數(shù)用戶都明白這會導(dǎo)致身份認證無法使用,他們會單獨解鎖那些他們比較關(guān)心的站點。這并不是你 —— 一個 Web 開發(fā)者應(yīng)當解決的問題。更好的方案是,向你的用戶們詳細地解釋為何你的網(wǎng)站需要 Cookies 才能使用。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://github.com/YunaiV/yudao-cloud
  • 視頻教程:https://doc.iocoder.cn/video/

JWT 的劣勢

以上,我已經(jīng)對常見的誤解做了說明,以及為什么它們是錯誤的。你或許在想:「這好像也沒什么大不了的,即便 JWT 無法帶來任何好處,但也不會造成什么影響」,那你真是大錯特錯了。

使用 JWT 作為 Session 機制存在很多缺點,其中一部分會造成嚴重的安全問題。

更費空間

JWT Tokens 實際上并不「小」。尤其是使用無狀態(tài) JWT 時,所有的數(shù)據(jù)將會被直接編碼進 Tokens 內(nèi),很快將會超過 Cookies 或 URL 的長度限制。你可能在想將它們存儲到 Local Storage,然而...

更不安全

若將 JWT Tokens 存儲到 Cookies 內(nèi),那么安全性與其他 Session 機制無異。但如果你將 JWT 存儲至其它地方,會導(dǎo)致一個新的漏洞,詳見https://blog.prevoty.com/does-jwt-put-your-web-app-at-risk,尤其是「Storing sessions」這一部分。

?

Local Storage,一個 HTML5 內(nèi)很棒的功能,使瀏覽器支持 Key/Value 存儲。所以我們應(yīng)當將 JWT Tokens 存儲到 Local Storage 嗎?考慮到這些 Tokens 可能越來越大,或許會很有用。Cookies 通常在 4k 左右的存儲時比較占優(yōu)勢,對于較大的 Tokens,Cookies 可能無法勝任,而 Local Storage 或許成了明確的解決方案。然而,Local Storage 并沒有提供任何類似 Cookies 的安全措施。LocalStorage 與 Cookies 不同,并不會在每次請求時發(fā)送存儲的數(shù)據(jù)。獲取數(shù)據(jù)的唯一方法是使用 JavaScript,這意味著任何攻擊者注入的 JavaScript 腳本只需通過內(nèi)容安全策略檢查,就能任意訪問或泄露數(shù)據(jù)。不光是這樣,JavaScript 并不在意或追蹤數(shù)據(jù)是否通過 HTTPS 發(fā)送。就 JavaScript 而言,它就只是個數(shù)據(jù)而已,瀏覽器會像操作其它數(shù)據(jù)一樣來處理它。在歷代工程師們經(jīng)歷了各種麻煩之后,終于能夠確保沒有人可以惡意接觸到我們的 Cookies,然而我們卻試圖忽略這些經(jīng)驗。這對我來說似乎是在退步。

?

簡單來說,「使用 Cookies 并不是可選的」 ,無論你是否采用 JWT。

無法單獨銷毀

還有更多安全問題。不像 Sessions 無論何時都可以單獨地在服務(wù)端銷毀。無狀態(tài) JWT Tokens 無法被單獨的銷毀。根據(jù) JWT 的設(shè)計,無論怎樣 Tokens 在過期前將會一直保持有效。舉個例子,這意味著在檢測到攻擊時,你卻不能銷毀攻擊者的 Session。同樣,在用戶修改密碼后,也無法銷毀舊的 Sessions。

對此,我們幾乎無能為力,除非重新構(gòu)建復(fù)雜且有狀態(tài)(Stateful)的基礎(chǔ)設(shè)施來明確地檢測或拒絕特定 Session,否則將無法結(jié)束會話。但這完全違背了使用無狀態(tài) JWT Tokens 的最初目的。

數(shù)據(jù)延遲

與上文的安全問題類似,還有另一個潛在的安全隱患。就像緩存,在無狀態(tài) Tokens 內(nèi)存儲的數(shù)據(jù)最終會「過時」,不再反映數(shù)據(jù)庫內(nèi)最新的數(shù)據(jù)。

這意味著,Tokens 內(nèi)保留的可能是過期的信息,例如:用戶在個人信息頁面修改過的舊 URL。更嚴肅點講,也可能是個具備 admin 權(quán)限的 Token,即使你已經(jīng)廢除了 admin 權(quán)限。因為無法銷毀這些 Tokens,所以面對需要移除的管理員權(quán)限,除非關(guān)閉整個系統(tǒng),別無他法。

實現(xiàn)庫缺乏生產(chǎn)環(huán)境驗證或壓根不存在

你或許在想,以上的這些問題都是圍繞著「無狀態(tài) JWT」展開的,這種說法大部分情況是對的。然而,使用有狀態(tài) Tokens 與傳統(tǒng)的 Session cookies 基本上是等效的... 但卻缺乏生產(chǎn)環(huán)境的大量驗證。

現(xiàn)存的 Session 實現(xiàn)(例如適用于 Express 的 express-sessionhttps://github.com/expressjs/sessio)已經(jīng)被用于生產(chǎn)環(huán)境很多很多年,它們的安全性也經(jīng)過了大量的改良。倘若使用 JWT 作為 Session cookies 的臨時替代品,你將無法享受到這些好處,并且必須不斷改進自己的實現(xiàn)(在此過程中很容易引入漏洞),或使用第三方的實現(xiàn),盡管還沒有在真實世界里大量應(yīng)用。

?

譯者注:實際上,Laravel Passport 便是使用類似「有狀態(tài) JWT」的方式來存儲 OAuth Access Token。幸運的是,Passport 已經(jīng)有不少實際應(yīng)用,且不完全依賴于 JWT。

?

結(jié)論

無狀態(tài) JWT Tokens 無法被單獨地銷毀或更新,取決于你如何存儲,可能還會導(dǎo)致長度問題、安全隱患。有狀態(tài) JWT Tokens 在功能方面與 Session cookies 無異,但缺乏生產(chǎn)環(huán)境的驗證、經(jīng)過大量 Review 的實現(xiàn),以及良好的客戶端支持。

除非,你工作在像 BAT 那樣規(guī)模的公司,否則沒什么使用 JWT 作為 Session 機制的理由。還是直接用 Session 吧。

所以... JWT 適合做什么?

在本文之初,我就提到 JWT 雖然不適合作為 Session 機制,但在其它方面的確有它的用武之地。該主張依舊成立,JWT 特別有效的使用例子通常是作為一次性的授權(quán)令牌。

引用JSON Web Token specification(https://tools.ietf.org/html/rfc7519):

?

JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. [...] enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.

?

在此上下文中,「Claim」可能是一條「命令」,一次性的認證,或是基本上能夠用以下句子描述的任何情況:

?

你好,服務(wù)器 B,服務(wù)器 A 告訴我我可以 < ...Claim... >,這是我的證據(jù):< ...密鑰... >。

?

舉個例子,你有個文件服務(wù),用戶必須認證后才能下載文件,但文件本身存儲在一臺完全分離且無狀態(tài)的「下載服務(wù)器」內(nèi)。在這種情況下,你可能想要「應(yīng)用服務(wù)器(服務(wù)器 A)」頒發(fā)一次性的「下載 Tokens」,用戶能夠使用它去「下載服務(wù)器(服務(wù)器 B)」獲取需要的文件。

以這種方式使用 JWT,具備幾個明確的特性:

  • Tokens 生命期較短。它們只需在幾分鐘內(nèi)可用,讓客戶端能夠開始下載。
  • Tokens 僅單次使用。應(yīng)用服務(wù)器應(yīng)當在每次下載時頒發(fā)新的 Token。所以任何 Token 只用于一次請求就會被拋棄,不存在任何持久化的狀態(tài)。
  • 應(yīng)用服務(wù)器依舊使用 Sessions。僅僅下載服務(wù)器使用 Tokens 來授權(quán)每次下載,因為它不需要任何持久化狀態(tài)。

正如以上你所看到的,結(jié)合 Sessions 和 JWT Tokens 有理有據(jù)。它們分別擁有各自的目的,有時候你需要兩者一起使用。只是不要把 JWT 用作 「持久的、長期的」 數(shù)據(jù)就好。



審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8963

    瀏覽量

    85086
  • Session
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    9967

原文標題:別再使用 JWT 作為 Session 系統(tǒng)!問題重重且很危險。

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    D類功放輸出的LC電路的電感選型的時候需要注意哪些參數(shù)?

    D類功放輸出的LC電路的電感選型的時候需要注意哪些參數(shù),或者是什么樣的類型電感適合使用哪一些不適合使用
    發(fā)表于 10-12 08:37

    OPA1612作為ADC的差分輸入濾波器,電路無法正常工作的原因?

    芯片溫度很高,兩片1612電流在350mA左右, 我的供電是正負15V ,電源部分都是正常的, 我換成TL072電路可以正常。 但我覺得OPA1612性能會好一些,所以選擇這個芯片,為何不適合這個電路呢?
    發(fā)表于 09-29 07:57

    為什么面接觸型二極管不適合高頻電路

    面接觸型二極管(也稱為平面二極管)是一種半導(dǎo)體器件,其特點是在制造過程中,PN結(jié)是在半導(dǎo)體材料的表面形成的。這種類型的二極管在早期的電子設(shè)備中非常流行,但隨著技術(shù)的發(fā)展,它們在高頻電路中的應(yīng)用越來越少。 1. 基本原理和結(jié)構(gòu) 面接觸型二極管的工作原理基于PN結(jié)的單向?qū)щ娦?。在正向偏置時,PN結(jié)導(dǎo)通,允許電流通過;在反向偏置時,PN結(jié)截止,阻止電流通過。面接觸型二極管的結(jié)構(gòu)包括一個N型半導(dǎo)體基底和一個P型半導(dǎo)體層,它們在
    的頭像 發(fā)表于 09-24 10:00 ?238次閱讀

    探索存儲新未來:為何EVASH EV24C256A EEPROM成為市場新寵

    探索存儲新未來:為何EVASH EV24C256A EEPROM成為市場新寵
    的頭像 發(fā)表于 09-05 15:31 ?251次閱讀

    keras模型轉(zhuǎn)tensorflow session

    在這篇文章中,我們將討論如何將Keras模型轉(zhuǎn)換為TensorFlow session。 Keras和TensorFlow簡介 Keras是一個高級神經(jīng)網(wǎng)絡(luò)API,它提供了一種簡單、快速的方式來構(gòu)建
    的頭像 發(fā)表于 07-05 09:36 ?437次閱讀

    請問stm32是不是不適合控制有位置要求的交流伺服pmsm電機?

    stm32很適合控制無傳感器pmsm電機,是否可以認為:stm32不適合控制有編碼器的交流伺服電機
    發(fā)表于 05-16 07:31

    零基礎(chǔ)小白適不適合學(xué)鴻蒙開發(fā)?

    在互聯(lián)網(wǎng)不斷發(fā)展以及萬物互聯(lián)時代的開啟過程中,鴻蒙操作系統(tǒng)的出現(xiàn)無疑是技術(shù)領(lǐng)域的一次重大突破。鴻蒙操作系統(tǒng)是一款“面向未來”的操作系統(tǒng),它創(chuàng)造性地提出了三大技術(shù)理念:一次開發(fā),多端部署;可分可合,自由流轉(zhuǎn);統(tǒng)一生態(tài),原生智能。隨著鴻蒙生態(tài)的壯大,投入鴻蒙開發(fā)的IT專業(yè)人才越來越多,對于從未接觸過此方面零基礎(chǔ)的學(xué)生而言,也是一次很不錯的職業(yè)轉(zhuǎn)向和技術(shù)提升的好機會。 什么是鴻蒙? ? 鴻蒙系統(tǒng)(HarmonyOS)是華為技
    的頭像 發(fā)表于 03-04 17:50 ?1837次閱讀
    零基礎(chǔ)小白適<b class='flag-5'>不適合</b>學(xué)鴻蒙開發(fā)?

    PLC驅(qū)動接觸器的選擇與限制

    低功率輸出型PLC:這種PLC通常不適合直接驅(qū)動接觸器,因為其輸出電流較低。這種PLC通常用于控制較小功率負載或傳感器信號的接收。
    發(fā)表于 03-04 09:56 ?628次閱讀
    PLC驅(qū)動接觸器的選擇與限制

    什么是JWT?JWT由哪些部分組成?JWT如何進行用戶認證?

    JWT(JSON Web Token)是一個開放的行業(yè)標準(RFC 7519),自身包含了身份驗證所需要的所有信息,因此我們的服務(wù)器不需要存儲用戶Session信息。
    的頭像 發(fā)表于 02-25 09:44 ?3352次閱讀
    什么是<b class='flag-5'>JWT</b>?<b class='flag-5'>JWT</b>由哪些部分組成?<b class='flag-5'>JWT</b>如何進行用戶認證?

    電阻可以串聯(lián),為何二極管不適合串聯(lián)?

    電阻可以串聯(lián),為何二極管不適合串聯(lián)? 二極管是一種非線性電子元件,其工作原理與電阻截然不同。由于其獨特的電學(xué)特性,二極管不適合串聯(lián)使用。 首先,我們來了解一下二極管的基本原理。二極管由PN結(jié)構(gòu)組成
    的頭像 發(fā)表于 02-18 10:00 ?1727次閱讀

    如何用FPGA加速神經(jīng)網(wǎng)絡(luò)

    到底純FPGA適不適合這種大型神經(jīng)網(wǎng)絡(luò)的設(shè)計?這個問題其實我們不適合回答,但是FPGA廠商是的實際操作是很有權(quán)威性的,現(xiàn)在不論是Intel還是Xilinx都沒有在自己傳統(tǒng)的FPGA上推廣AI,都是在
    的頭像 發(fā)表于 01-24 09:51 ?884次閱讀
    如何用FPGA加速神經(jīng)網(wǎng)絡(luò)

    AD7175-2適合做高精度數(shù)據(jù)采集嗎?

    壓,精度只有3位半左右,后幾位抖動的非常厲害,這是為什么?是不是我使用的不恰當?如果AD7175-2不適合做高精度數(shù)據(jù)采集,可以給我推薦一款24bit的ADC做數(shù)采嗎?
    發(fā)表于 12-18 08:29

    請問AD9928適合驅(qū)動KAI08051嗎?

    您好,我們需要用AD9928驅(qū)動安森美的KAI08051的800萬像素的CCD sensor,請問AD9928適合驅(qū)動KAI08051嗎?若適合有沒有推薦的配置寄存器列表?若不適合有沒有推薦的驅(qū)動方式?
    發(fā)表于 12-12 08:30

    SaberRD示例設(shè)計:飛機廚房中烤箱的溫控設(shè)計介紹

    由于飛機的特殊用途與密閉空間的特點,決定了飛機上不適合進復(fù)雜的烹飪。實際上,我們吃到的飛機餐,一般都是在地面上已經(jīng)加工過的半成品。
    的頭像 發(fā)表于 12-05 15:25 ?827次閱讀
    SaberRD示例設(shè)計:飛機廚房中烤箱的溫控設(shè)計介紹

    JWT滲透姿勢一篇通

    Signature是使用指定算法對Header和Payload進行簽名生成的,用于驗證JWT的完整性和真實性,Signature的生成方式通常是將Header和Payload連接起來然后使用指定算法對其進行簽名
    的頭像 發(fā)表于 11-13 16:04 ?987次閱讀
    <b class='flag-5'>JWT</b>滲透姿勢一篇通