前陣子專案內需要抽換原本共用類別庫的功能並引用third party的dll,但不希望改動原本主程式的程式碼,筆記以下兩種:
- 動態繫結
- 依賴注入DI(Unity framework)
類別庫與主程式的低耦合可以選用的做法。
前陣子專案內需要抽換原本共用類別庫的功能並引用third party的dll,但不希望改動原本主程式的程式碼,筆記以下兩種:
類別庫與主程式的低耦合可以選用的做法。
上一篇筆記了指令碼工作,這一篇來筆記指令碼元件(script component)
最近案子中,批次部分只能使用SSIS,版本限定2008,偏偏Developer習慣Visual Studio 習慣.NET習慣C#語法習慣來做商業判斷,來筆記怎麼在BI開發工具中使用C#。
提起Barcode就想到喉嚨借過,ㄟ~夜店亂入,是1D線性或是2D圖形條碼,想起先前案子曾產出超商繳款條碼(code39),拿起從法蘭克福回來的行李條碼,好像有點不同,有種好熱想把行李條碼(Baggage Barcode)解開,來一趟行李分檢。
Rail Fence Cipher 籬笆式位移密碼,很接近劉伯溫燒餅歌內的藏頭詩的排列,來認識英文單字Rail Fence[籬笆]順便練習C#語法。
Morse Code摩斯電碼,嚴格說起來不算密碼,19世紀美國Samuel Morese於1836年發明,一直是海事通訊中國際標準。
通常用一種音調平穩"時斷時續"的無線電信號傳送,也可以是一種機械的或視覺的信號(比如閃光),學知識兼練C#語法。
Virginia cipher維吉尼亞密碼,中世紀後期多表替換式加密,由16世紀義大利密碼學家Bellaso所創,後誤植為19世紀法國外交官維吉尼亞,維吉尼亞密碼以其簡單易用而著稱,同時初學者通常難以破解,因而又被稱為不可破譯的密碼。
Caesar cipher 凱撒密碼,一種既古典又經典的替換式密碼,凱撒將要給遠方將領的信函內容隱密起來避免重要軍事命令外流,學歷史加練C#語法的筆記。
十幾年前傳統磁條卡片側錄盜刷事件層出不窮,當時高安全交易保護的晶片問世,ISO8583也依循著制定晶片規格的組織EMV增加了數十個晶片交易資訊欄位,按照ISO8583標準,晶片資訊在DE55,並以BER-TLV的規格(ISO8825)組成資料區塊,由於計算驗證ARQC/ARPC需要晶片交易欄位,我們要先Parse DE55。
上一篇筆記了MAC的演算法,接下來筆記PIN Block。
ISO8583會傳遞許多卡片機密的轉帳授權資訊,為確保並鑑定訊息來源正確性,筆記ISO8583幾種保護機制:
國際銀行間的訊息傳遞:
因為程式在Server side產生Office套版文件出了一些小問題,case到微軟,依循微軟技術諮詢人員的建議,避免在Server端使用,雖然沒扣點數,但之後就一直找尋Microsoft.Office.Interop的替代方案:
除了Unicode(萬國碼)與ASCII(美國標準資訊交換碼)字元編碼外,有時與大型主機電腦進行資料交換時會碰到EBCDIC碼:
Extended Binary Coded Decimal Interchage Code): 擴充二進位編碼的十進位數資訊交換碼
Unicode在英數字、符號及控制字元上與ASCI完全相同,不用特別轉換的需求,但若碰到了EBCDIC:
由於寫好的套件會佈署在許多環境(網站、Windows服務、WCF、Batch Console),想取組態檔中(ConnectStrings)的資料庫名稱及應用程式名稱來給不同的參數。
哈!差點Parse字串,筆記取得的方式:
日前客戶IT通報有1個大型倉儲檔案(約1GB)FTP上傳2分鐘後就出現連線中斷的訊息:基礎連接已關閉: 接收時發生未預期的錯誤。
其他事證:
昨晚解決16進位字串轉Byte[]可以用在運算用途,今晚來解決與2進位字串(Binary,和BCD很像但不是)間的轉換。
考慮轉換過程方便,我們都先將來源字串轉換為Byte[],再依照目的字串進位法需求轉出字串。(二進位)
碰到的幾種密碼演算法將明文的組成及密文的輸出使用16進位字串(Hex string),但進行邏輯運算時則需要轉換為Byte[],
為了便於使用,偷偷把轉換功能寫進Extensions,因為火星任務會用到。
部分密碼演算法(Algorithm)有特殊的邏輯運算需求,筆記常用的Exclusive OR(XOR)⊕,順便複習OR及AND運算差異。
PIN Blocks、TripleDES..