.NET 8 升級踩坑 - SqlGuidCaster 問題與 System.Data.SqlClient 的未來
繼續分享升級 .NET 8 踩坑心得,用以下程式重現問題: using System; using System.Data.SqlClient; var obj = new SomeClass(); var typeNames = AppDomain.CurrentDomain.GetAssem... Read More
View Article無密碼登入時代 - WebAuthn 與 Passkey
密碼仍是當代最常用的身分識別方式,但密碼也是使用者跟系統管理的痛苦來源之一。密碼太短太簡單容易被猜中,太長太複雜記不住,忘記了要重設自己煩客服也煩;對系統管理者,密碼如燙手山芋,儲存得加鹽慎選雜湊演算法才安全(延伸閱讀:密碼要怎麼儲存才安全?該加多少鹽?-科普角度)(當然隨便雜湊加密湊數,甚至直接存... Read More
View Article.NET 8 之路 - System.Data.SqlClient 轉移 Microsoft.Data.SqlClient 經驗一則
前幾天踩到 System.Data.SqlClient 與 .NET 8 不相容的雷,無奈 System.Data.SqlClient 停更已成事實,要繼續往前走,儘早改用 Microsoft.Data.SqlClient 是上策。 咬牙把某個專案的 System.Data.SqlClient 換成... Read More
View Article再談 .NET CSV 解析 - CsvHelper 與其他 38 種程式庫選擇
講到 .NET 解析 CSV,我習慣用 ServiceStack.Text CsvSerializer 處理,功能與效能都沒啥問題,也就一直沿用至今。今天在 FB 看到相關討論,發現有個我錯過的 CSV 程式庫 - CsvHelper (感謝網友許智涵分享),保哥之前寫過文章分享(參考:使用 C# ... Read More
View ArticlePowerShell 小工具 - 自動補齊離線安裝 NuGet 套件
在一般情況下,NuGet 套件會在編譯時自動從網路下載安裝,不需我們費心。但現實世界不如想像美好,有時你需要在無法上網的環境編譯專案,簡單解法是開個本地資料夾當成 NuGet 套件來源參考,手動下載預先放入 .nupkg 檔以實現離線安裝 NuGet 套件。 在 NuGet Gallery 每個套件... Read More
View ArticleCoding4Fun - ESP32 觸控式簡報遙控器 PoC
無意間逛到線上購物的簡報遙控器區,突發奇想,零件箱有幾塊塵封多時的 ESP32 開發板,ESP32 內建藍牙,要模擬藍牙鍵盤應是小菜一碟,接幾個實體按鍵觸發程式送出左右鍵,就是個陽春版簡報播放器囉,興之所至,決定做一個來玩玩。 靠著強大開源社群的支持,我很快站上巨人的肩膀,找到一個 ESP32 模擬... Read More
View Article【茶包射手日記】LineBotSDK NullReferenceException 錯誤調查
讀者 Edward 問了一個有趣問題,花了點時間追查,發現是 TLS 1.2 問題的變形茶包,累積了一些經驗值,簡單整理分享。 錯誤出現在使用 LineBotSDK 傳送 LINE 訊息的超簡單範例,甚至可簡化成一行就好:(參數都是亂給的,不可能傳送成功,正常情況應得到 HTTP 401,在特定環境... Read More
View ArticleWebAuthn 無密碼登入不等於 Passkey
入手新玩具 - 大名鼎鼎的 YubiKey 5: 最近在研究 WebAuthn/Passkey,手邊的土砲 USB 金鑰只支援 GPG,雖然另有開源專案 u2f-token,但只有 U2F,不支援 FIDO2。評估之後,決定一咬牙買支 YubiKey 玩玩,YubiKey 5 應屬當前實體金鑰市場... Read More
View Article閒聊 - Y2Q 倒數與 Q-Day,當代資訊安全防線即將崩潰
之前在 YT 筆記 - 搞懂量子糾纏、疊加態、測不準原理提到,以量子位元(Qubits)為基礎進行運算的量子電腦,運算能力將完全輾壓當代超級電腦,預估能破解現今被視為牢不可破的加密金鑰,讓資訊安全體係面臨一場革命。 隨著量子電腦研究不斷有新進展,這場革命感覺也愈來愈近了。依據 2021 年 IBM ... Read More
View ArticleGoogle Passkey 筆記 - 使用手機免密碼登入 Google 帳號
前幾天研究 WebAuthn 規格之餘順便搞懂了 Passkey 是怎麼一回事,這回來實際體驗 Google 是如何應用 Passkey 實現無密碼登入,與理論印證一下。 先說結論,如果你有在手機、平板登入 Google 的話,其實你已經在使用 Passkey 了,也可以用手機免密碼登入 Googl... Read More
View ArticleESP32 Marauder - WiFi/藍牙訊號分析與無線基地台干擾器
前幾天手機免密碼登入 Google 帳號文章跟讀者討論到手機與電腦間的藍牙究竟只做為距離判斷或是會用來傳輸 WebAuthn 協定,突發奇想,不如監聽一下藍牙封包見真章。 查了網路,倒也不難,買個 nRF52840 USB Dongle 配 Wireshark 即可比照無線線卡抓封包,零件大約 50... Read More
View ArticlehCaptcha 筆記與部落格留言機制調整公告
我的部落格這半年來不知為何被印尼的廣告留言廠商盯上,三不五時會跑來留一些印尼文垃圾留言(大多是吃角子老虎、線上賭場... 之類博弈類廣告,但有次是升學求職家教,跨度挺大),頻率一週一兩次,每次會隨機挑五六篇留言,每則間隔一兩分鐘,印尼文居多,但也看過一兩次英文版。 推測對方有花了點心思,破解掉我防... Read More
View Article我的 2023 技術盤點
又到了年末盤點自己技術成長的時間。2023 真是充滿驚奇的一年,年初 ChatGPT 橫空而出,在江湖捲起千堆雪,緊接 LK-99 常溫超導體的新聞,有種人類文明居然要在一年內翻轉兩次的錯覺。不過,隨著時間過去,LK-99 證實是場空歡喜,而我現在則以平常心看待 AI,摸清楚現階段它的限制與能耐,不... Read More
View ArticleASP.NET Core 整合 WebAuthn/Passkey 無密碼登入之精簡範例
前幾個星期入手 YubiKey,花了點時間研究 WebAuthn / CTAP2 規格,從 .NET FIDO2 程式庫的 Passwordless 與 Usernameless 範例弄懂 WebAuthn 無密碼登入與 Passkey 的差異,最後我打算整理一個 ASP.NET Core 整合 P... Read More
View Article小試 RAG - 整合 ChatGPT 與自有資料 (駕駛人手冊實測)
最近學到新名詞 - Retrieval Augmented Generation (RAG),號稱可以結合 ChatGPT 這類預訓練大型語言模型(LLM)依據自有資料來源生成內容。要這麼做的理由是預訓練模型會以某個時點的資料定型,如要加入新資料或自訂資料,有兩種做法:用新資料進行微調訓練,或使用 ... Read More
View ArticleUI 設計小錦囊 - 20 種差異鮮明色彩組合
寫網頁介面時,有時我會想用多種顏色表示不同類別資料,此時如何挑選一組彼此差異明顯的顏色,差異大到即使同框出現也不致混淆,這批顏色該如何搭配組合是個學問。 面對這個常見的小需求,我 Google 到不錯的建議 - List of 20 Simple, Distinct Colors,為了繪製捷運路線圖... Read More
View Article.NET 小技巧 - 禁止 JSON 包含無法對映的屬性
讀者 Galaxy952 分享一則實際經驗:JSON 反序列化時,若出現對映型別上沒有的屬性一般都會選擇無視,但某些資安政策認為 JSON 反序列化容忍未被定義的屬性是一種風險。故詢問 .NET 要如何偵測 JSON 有多餘的屬性參數並回傳錯誤。 舉例來說,若我們的物件有 Id 及 Name 兩個屬... Read More
View Article輕前端注意,unpkg.com/vue@next CDN 網址已失效!!
網友留言說 UI 設計小錦囊 - 20 種差異鮮明色彩組合的輕前端範例無法執行。 這回輪到我說:「咦?我測試的時侯明明是好的...」 實際一測,還真的壞惹!! 網頁所引用的 Vue.js CDN 網址 https://unpkg.com/vue@next 失效了。 vue@next 應是 Vue ... Read More
View Article觀察 Round-Robin DNS 查詢結果變化
Round-Robin DNS (DNS 輪循、循環 DNS) 是非常古老的負載平衡手法,其原理是 DNS 伺服器回應 DNS 請求時,返回結果來自一長串 IP 位址清單,並在每次回應時抽換 IP 組合跟掉換 IP 順序,一般來說,客戶端會採用回應結果的第一個 IP,如此,要連上 www.xxx.y... Read More
View Article閒聊 - 2024 年,Java 與 C# 的 TIOBE 排行會黃金交叉嗎?
幾年前從一篇 VB.NET 超越 C# 文章認識了 TIOBE 程式語言排行,我對 TIOBE 的理解是它依據 Google、維基百科、Bing、Amazon、YouTube... 等平台搜尋 `+" programming" 結果計算而得參考,作為各種程式語言「熱門或受歡迎程... Read More
View Article