Post
2026年3月12日 上午08:36
歡迎所有互動

剛好聊到就簡單講一下密碼的儲存方式

順便定期宣導,請不要在不同網站使用同個密碼🙏

網站為了要確認輸入的密碼是否正確都需要把密碼存在資料庫裡,但不同網站的儲存方式可能會不太一樣:

  1. 直接儲存(明文儲存):最危險的一種。只要網站資料庫外洩,所有人的密碼都會一次公開。(Meta也曾經有過這種嚴重缺陷)
  2. 簡單單向加密(雜湊):利用不可逆,但每次計算都有同樣結果的演算法儲存轉換過的結果,比對時只要比對結果就可以知道輸入的密碼是否相同。密碼本身不會出現在資料庫內,嚴格說起來比直接儲存安全一點點,但因為雜湊演算法種類不多,攻擊者只要預先算好常見的密碼長度就可以用來比對不同網站的計算結果(關鍵字:彩虹表)。在資料庫外洩時的危險性跟明文儲存並不會差太多。
  3. 固定加鹽雜湊:在計算雜湊前加上一串很長、只屬於這個網站的額外密碼(鹽)。由於複雜度提高,可以用來避免彩虹表攻擊。但是使用GPU大規模計算專屬於這個網站的彩虹表已經是很成熟的技術,如果攻擊者手中有已知的計算前密碼(例如自己的密碼)會更快。
  4. 動態加鹽雜湊:針對每個人的密碼儲存不同的鹽。嚴格來說並不會減少單個密碼被破解出來的速度,但相對固定加鹽的好處是算不出全站共用的彩虹表,無法平行破解所有密碼,對攻擊者來說花時間破解的效益會更低。
  5. 抗GPU型雜湊:在GPU可以有效破解雜湊後開始熱門的雜湊演算法(例如Argon2、scrypt、Balloon)。本質跟一般雜湊演算法相同,但特別使用GPU無法加速的方式計算。同樣可以破解出原始密碼,但破解時間會顯著增加(以8個小寫字母密碼為例,SHA-256通常可以用單個GPU在一秒內破解,但Argon2id最快需要60年左右)。可以額外加鹽讓破解更困難,或是防止平行破解。

密碼設定相同的狀況

2A 選信箱 被竊取密碼的瞬間直接宣布死亡(

一個幫大門上兩道鎖,備用鑰匙藏盆栽底下的概念

然後也寫一下

關於密碼外洩這件事

如果網站的資料庫被攻破,網站上的所有帳號、隱私內容、個人資料就已經不受到任何保護了。攻擊者並不需要知道密碼來偷窺個人相簿的內容。

此時真正危險的是連使用者的密碼也被攻擊者知道,用同個密碼登入在其他網站的帳號。也就是所謂的密碼外洩。例如:攻擊者攻破某個論壇的資料庫可能不會獲得太多有用資料,但是如果從這個資料庫裡面拿到使用者密碼,然後登入這個使用者的Google、Facebook、或是網路銀行⋯⋯那危險性就不同了。

這也是為什麼大部分的網站會宣導不要使用跟其他網站相同的密碼。對抗密碼外洩,不使用相同密碼還是最簡單而且也最有效的方式。

如果有興趣知道自己的密碼有沒有被外洩過,可以參考 https://haveibeenpwned.com/ ,這個網站收集了個人資料曾經被公開或是被拿來販售的使用者清單。

延伸閱讀:

[資訊安全] 密碼存明碼,怎麼不直接去裸奔算了?淺談 Hash , 用雜湊保護密碼

https://medium.com/@brad61517/d561ad2a7d84

我都使用同個密碼 (●▼●;)

我只有兩組很複雜跟更複雜的密碼,複雜程度是全部符號都有的,會依照每個平台規定條件去使用

技術廢文4 篇文章
歡迎所有互動

印刷標準是 CMYK,但數位顯示標準其實不一定是 RGB

1953 年當彩色電視廣播技術即將上市時,工程師們面臨一個關鍵難題:如何發送彩色訊號,同時又能確保已普及的數百萬台黑白電視機仍可正常接收和顯示黑白畫面?若直接以三原色(RGB)資訊傳輸彩色電視訊號,所需頻寬將非常龐大,且無法讓僅能處理亮度資訊的黑白電視使用。

為了解決這項相容性與頻寬效率的取捨,美國 NTSC(National Television System Committee) 委員會制定了一套創新的彩色電視標準,其核心即是 YUV 色彩模型。YUV 的設計理念是將影像訊號分解為:

  • Y (Luminance):亮度分量,此部...
...顯示更多 (2k 字)
歡迎所有互動

沒有人想知道的冷知識

輸出影片(H264)的時候有一個可以簡單計算理想bitrate的公式叫做Kush Gauge。

bitrate = 寬×高×FPS×動態複雜度參數×0.07

動態複雜度參數隨影片內容的複雜程度調整,通常是低(1)、中(2)、高(4)

雖然理想狀態下CQP還是最好用的。但如果輸出時沒有CQP,或是CQP常常遇到bitrate過高的問題,用公式算出參考值後套用到VBR、AVBR、或是QVBR可以壓制出還算不錯的成果。

歡迎所有互動

介紹個酷東西,這個專案叫做Pango(Παν語),是被廣泛使用的文字排版引擎。

底層通常使用HarfBuzz文字塑形引擎取得文字外型,再將文字排版到指定位置。

一般會搭配Cairo向量描繪引擎使用。三者搭配將文字塑形➡️排版➡️繪製在畫面上。

除了文字長寬、粗細、換行之外,Pango也負責處理較複雜的狀況,例如阿拉伯文的RTL或拉丁語系的重音標記,以及顏文字常用的變音符號。

只要是需要顯示文字的開源軟體通常都多少會使用到Pango,尤其是直接使用GTK的。