資料交換經常會碰到各種日期時間字串,今天來敲門的是"2016年10月5日 下午 10:06:23",他也是Windows中文繁體(台灣)內建的日期時間表示方式。來筆記快速又正確Parse時間字串方法。
[.NET][C#]大量New CultureInfo對效能的影響
同事在處理大量資料的轉檔,專案用C#讀取大量文字檔案,讀取後要做基本欄位檢核,因為程式處理速度較慢(10萬筆20分鐘),於是幫忙同事一起抓原因。花了幾個小時後,發現重複New CultureInfo 對效能帶來巨大的影響,快來筆記。
[.NET][Log4net]解決FileAppender+MinimalLock效能問題(二)(MSMQ)
為了避免多個Process對同一個log檔案寫入而引發檔案鎖定或者相互覆蓋而出現log內容遺失問題,上一篇使用Buffer來解決,這一篇用MSMQ。
[.NET][log4net]解決FileAppender+MinimalLock效能問題(一)(Buffering)
為了避免多個Process對同一個log檔案寫入而引發檔案鎖定或者相互覆蓋而出現log內容遺失問題,在log4net config中,我們會設定FileAppender+MinimalLock屬性,但啟動minimalLock屬性後,如果程式有大量的log需求,效能就會受到影響。
[.NET][C#]密碼學(隨機數筆記)
最近研究晶片讀卡機產生UN(EMV 9F37 Unpredictable Number)不可預期編號,過程中要使用隨機數演算法取值,來筆記幾種隨機種子對於偽隨機數結果的差異。
[.NET][C#]Parse ISO8583筆記(九)晶片卡交易AC(ARPC)運算
- 5000
- 0
- C# Parse ISO8583
發卡主機處理完授權交易請求後,接著開始產生回應訊息給刷卡機及晶片程式,類似ARQC的驗證值,發卡主機也產生ARPC讓晶片內的程式確認交易回應端的合法性以及交易內容的完整性,上一篇筆記晶片程式到驗證主機,這一篇筆記驗證主機到晶片程式。
[.NET][C#]Parse ISO8583筆記(八)晶片卡交易AC(ARQC)運算
- 6583
- 0
- C# Parse ISO8583
ISO8583格式中會傳遞許多卡片敏感性的資訊,為確保並鑑定訊息來源正確及完整,筆記ISO8583格式中第三種晶片交易的保護機制:
- MAC(ISO9807、CNS13526)
- PIN Block(ISO9564 - 1、CNS13798)
- ARQC/ARPC
[ASP.NET][C#]WebForm FileUpload控制項上傳問題
幾年前軟體弱點檢測報告出爐,因此負責的網站關閉了幾個透過網頁上傳檔案的功能,最近其他部門的專案同意了網站檔案上傳,準備上線前,同事B通報了一個小問題:第一次進入頁面時操作上傳沒辦法上傳成功,第二次卻可以成功?
[ASP.NET][C#]下載檔案時中文檔名出現亂碼
負責的網站在ASP.NET網頁有一段下載Word/Excel檔案的程式碼,最近使用者要求的檔案名稱內含繁體中文字,
同事用chrome/firefox瀏覽器測試下載都很正常顯示,但用IE(版本11)開啟時,卻出現了亂碼。
[.NET][C#]PIN的驗證值(PVV)反算PIN
- 6510
- 0
- C# Parse ISO8583
觀察上一篇運算密碼驗證值(PVV)最後取值的機制,PVV不太可能反算回PIN,但你知道的,防君子不防暴力!
[.NET][C#]Parse ISO8583筆記(七)PIN的驗證值(PVV)
- 1418
- 0
- C# Parse ISO8583
- 2016-08-06
在Parse ISO8583(五)及(六)中,筆記了Natural PIN及PIN Offset運作,前兩種驗證在處理過程中,免不了用正確金鑰計算出正確的密碼值PIN,這因此有了一種過程風險。
為了避免風險,在PIN的驗證上也有PVV(PIN Verification Value),概念很像取雜湊驗證(Hash),但精確度不同。
[.NET][C#]Log日誌功能(一)Microsoft.Practices.EnterpriseLibrary.Logging
Log是電腦上發生動作和事件的歷史,紀錄時若有統一的方法作為標準,對事後問題的追查及分析將會有很大的幫助,
在.NET環境常見幾種元件可以輔助我們完成這項工作,幾年前厲害的同事幫我們選擇了log4net,實際上也很方便,最近想調整小地方,剛好來試其他幾種。
- Microsoft Enterprise Library
- NLog
- NSpring
- ELMAH
[.NET][C#]Parse ISO8583筆記(六)PIN Offset(密碼偏移量)
- 2104
- 0
- C# Parse ISO8583
- 2016-08-06
上一篇Parse ISO8583(五)筆記支付系統卡片初始密碼(Natural PIN)的產生,但當持卡人想指定或變更密碼(PIN),又或者金融機構寄發初始密碼函時希望採用動態PIN來提高安全,
單採 IBM3624就可能沒辦法符合需求,因此2000年之後,台灣的金融機構也陸續導入國外使用的密碼偏移量(PIN Offset)概念。
[.NET][C#]BIG5檔案出現非預期編碼問題(非難字)
最近其他部門同事在.NET處理大型主機(Mainframe)下傳的檔案發生長度錯誤,實際整個檔案長度正確,但卻有少數資料Parse時異常,
晚上女兒睡著了,趕緊抽時間筆記。
[.NET][C#]ASCII 轉EBCDIC字元編碼系統
之前的筆記把EBCDIC編碼轉換為ASCII編碼,今天筆記ASCII轉EBCDIC(筆)!
[.NET][C#]Parse ISO8583筆記(五)Natural PIN產生
- 4036
- 0
- C# Parse ISO8583
- 2016-07-03
在Parse ISO8583(三)中,我們曾Parse DE(52)的Element 的PIN Block欄位,為了更了解PIN背後的運作原理及歷史,我們走一遍wiki再用程式語言C# 跑一遍Natural PIN的產生。
[C#]取得Windows .NET Framework版本資訊(Query registry)
因為佈署前要確定客戶生產環境上幾台機器的.NET Framework版本,上一次筆記查詢.NET Framework Command line、PowerShell方法,這一次來筆記用c#取Registry來判讀。
[ASP.NET][Web Form]調整筆記三(URL Routing上集)
- 5629
- 0
- Web Form調整
- 2016-05-08
ASP.NET MVC在URL網址列上可以很輕易設計SEO (search-engine optimization),背後有個厲害的元件就是URL Routing!
那麼ASP.NET Web Form是否也適用?
"http://mywebsite/products/apple" 取代 "http://mywebsite/product.aspx?vender=apple"
[ASP.NET]內嵌資源的程式碼在Release發行時也要複製
最近將Web專案內的內容網頁(aspx、ascx)分享給其他Web專案,為方便版本管理及協同作業,
這次使用虛擬目錄(VirtualPathProvider)來將內容網頁以串流方式讓其他專案引用,測試時都運作正常(哈!通常都是),
就當原本Web專案發行組態從偵錯(Debug)改成發行(Release)組態時,網頁發生缺少主版網頁的錯誤,筆記解法。
[.NET][C#]動態載入指定的Class(依賴注入DI)
前陣子專案內需要抽換原本共用類別庫內的功能並引用third party的dll,但不希望改動原本主程式的程式碼,上一篇介紹了動態繫結,這一篇介紹下集:
- 動態繫結
- 依賴注入DI(Unity framework)
類別庫與主程式的低耦合時可以選用的做法。