Virginia cipher維吉尼亞密碼,中世紀後期多表替換式加密,由16世紀義大利密碼學家Bellaso所創,後誤植為19世紀法國外交官維吉尼亞,維吉尼亞密碼以其簡單易用而著稱,同時初學者通常難以破解,因而又被稱為不可破譯的密碼。
[.NET][C#]密碼學(Caesar cipher)
Caesar cipher 凱撒密碼,一種既古典又經典的替換式密碼,凱撒將要給遠方將領的信函內容隱密起來避免重要軍事命令外流,學歷史加練C#語法的筆記。
[.NET][C#]Parse ISO8583筆記(四)TLV
- 3951
- 0
- C# Parse ISO8583
- 2016-02-14
十幾年前傳統磁條卡片側錄盜刷事件層出不窮,當時高安全交易保護的晶片問世,ISO8583也依循著制定晶片規格的組織EMV增加了數十個晶片交易資訊欄位,按照ISO8583標準,晶片資訊在DE55,並以BER-TLV的規格(ISO8825)組成資料區塊,由於計算驗證ARQC/ARPC需要晶片交易欄位,我們要先Parse DE55。
[.NET][C#]Parse ISO8583筆記(三)PIN Block
- 3560
- 0
- C# Parse ISO8583
- 2016-02-14
上一篇筆記了MAC的演算法,接下來筆記PIN Block。
- MAC(ISO9807、CNS13526)
- PIN Block(ISO9564-1、CNS13798)
- ARQC/ARPC
[.NET][C#]Parse ISO8583筆記(二)MAC計算
- 2075
- 0
- C# Parse ISO8583
- 2016-02-14
ISO8583會傳遞許多卡片機密的轉帳授權資訊,為確保並鑑定訊息來源正確性,筆記ISO8583幾種保護機制:
- MAC(ISO9807、CNS13526)
- PIN Block(ISO9564-1、CNS13798)
- ARQC/ARPC
[.NET][C#]Parse ISO8583筆記(一)Formatter
- 14850
- 0
- C# Parse ISO8583
- 2016-02-14
國際銀行間的訊息傳遞:
- 通匯、信用狀(LC)、債券、聯合貸款、帳務查詢:SWIFT
- 卡片交易(EFT/POS/ATM): ISO8583
[.NET][C#]Office Word套版(Form) Open source
因為程式在Server side產生Office套版文件出了一些小問題,case到微軟,依循微軟技術諮詢人員的建議,避免在Server端使用,雖然沒扣點數,但之後就一直找尋Microsoft.Office.Interop的替代方案:
- 理所當然NPOI來取代Excel套版(Apache License 2.0)
- 最近找了DocX來替代Word套版(Ms-PL)
[.NET][C#]EBCDIC 轉 ASCII 字元編碼系統
除了Unicode(萬國碼)與ASCII(美國標準資訊交換碼)字元編碼外,有時與大型主機電腦進行資料交換時會碰到EBCDIC碼:
Extended Binary Coded Decimal Interchage Code): 擴充二進位編碼的十進位數資訊交換碼
Unicode在英數字、符號及控制字元上與ASCI完全相同,不用特別轉換的需求,但若碰到了EBCDIC:
[SQL Server] 透過AG Listener讀取AlwaysOn唯讀資料庫
.NET程式存取AlwaysOn可用性群組(Availability Group)下的唯讀複本有兩個連線方式:
1.直接連接次要複本所在的資料庫伺服器。
2.透過Availability Group Listener (AG Listener)唯讀路由讀取。
[SQL Server] AlwaysOn 同步認可時的短暫延遲現象
為了降低主要複本負載,除了倉儲與報表作業讀取非同步認可的複本,最近計畫把線上交易查詢改道同步認可的複本,一種類讀寫分流。
開始測試網站,就在明細頁修改完資料(主要複本)回到清單頁重查資料時(次要同步複本),顯示的還是舊資料?
[.NET] 透過組態檔案(Config)取得連線字串內設定的資訊
由於寫好的套件會佈署在許多環境(網站、Windows服務、WCF、Batch Console),想取組態檔中(ConnectStrings)的資料庫名稱及應用程式名稱來給不同的參數。
哈!差點Parse字串,筆記取得的方式:
[.NET] FTP 上傳檔案時發生 System.Net.WebException: 基礎連接已關閉: 接收時發生未預期的錯誤
日前客戶IT通報有1個大型倉儲檔案(約1GB)FTP上傳2分鐘後就出現連線中斷的訊息:基礎連接已關閉: 接收時發生未預期的錯誤。
其他事證:
- 其他較小的檔案在同一台FTP Server傳送正常。
- 在命令提示字元下(cmd.exe)以FTP指令碼執行可以成功。
[C#][.NET]16進位字串(Hex string)與2進位字串(Binary string)轉換
昨晚解決16進位字串轉Byte[]可以用在運算用途,今晚來解決與2進位字串(Binary,和BCD很像但不是)間的轉換。
考慮轉換過程方便,我們都先將來源字串轉換為Byte[],再依照目的字串進位法需求轉出字串。(二進位)
- Hex string -> Byte[] -> Binary String
- Binary String -> Byte[] -> Hex String
[C#][.NET]16進位字串(Hex string)與位元組陣列Byte[]轉換
碰到的幾種密碼演算法將明文的組成及密文的輸出使用16進位字串(Hex string),但進行邏輯運算時則需要轉換為Byte[],
為了便於使用,偷偷把轉換功能寫進Extensions,因為火星任務會用到。
- 16進位數字組成的字串轉換為Byte[]
- Byte[]轉換為16進位數字字串
- 取出字串右邊開始的指定數目字元
[C#][.NET]Exclusive OR(XOR)⊕
部分密碼演算法(Algorithm)有特殊的邏輯運算需求,筆記常用的Exclusive OR(XOR)⊕,順便複習OR及AND運算差異。
PIN Blocks、TripleDES..
[SQL Server].NET SqlBulkCopy與Tabe Lock
- 4783
- 0
- SQL Server
為減少資料爭用避免擴大鎖定,我們常調整T-SQL或預存程序使用小量分批更新或寫入。
常用SqlBulkCopy來提升.NET大量資料寫入效能(真的很快),那麼SqlBulkCopy會不會造成資料表鎖定(Tabe Lock)?
(1)會 (2)不會 (3)不一定
[SQL Server]如何透過SSMS管理工具連接AlwaysOn唯讀路由資料庫
先前案子多把SQL Server 2012 新功能AlwaysOn作為備援用途,這次的案子則進一步希望在SQL Server 2014完成讀寫分流,
設定好ReadOnly Routing和Listener,也請SP幫忙加AD(VCO)及DNS,使用SSMS連入時卻一直連到主要複本,
明明設好了ApplicationIntent=ReadOnly..
[.NET] Dapper ORM 查詢參數問題
繼ADO.NET Sqlcommand AddWithValue可能產生的效能問題,那麼Dapper有沒有類似的情形?
針對居家旅行 殺人滅口 必備良藥Dapper與參數化的實驗:
[.NET] ADO.NET Parameters.AddWithValue 對於SqlDbType的抉擇
接獲客戶端IT通知,某個交易查詢約需6秒,調查資料存取物件是簡單的ADO.NET Sqlcommand,簡單的語法加上參數化查詢AddWithValue,
疑,AddWithValue
[.NET] SqlCommandBuilder.DeriveParameters 擷取預存程序參數與資料表值參數衝突問題
ADO.NET呼叫帶入資料表值參數的預存程序失敗,錯誤訊息:
資料表值參數不可以使用資料庫名稱,只有結構描述名稱和類型名稱是有效的。
Database name is not allowed with a table-valued parameter, only schema name and type name are valid