元々がC++のコード。
C++でのコードはこんな感じ
簡単な暗号化 - 共通鍵暗号化
暗号化 (共通鍵による)
WindowsでのC++では、一般的なアルゴリズムっぽいのでC#に置き換えるサンプルあるだろ?
と思ったけどなかなかなくて、やっと見つけたのがここのサンプル。
How to use C#(managed code) rewrite Cryptography API( unmanaged code)
CryptAcquireContext関数などがadvapi32.dllにあるってのが判って、ヘッダファイル(wincrypt.h)の定数とか辿ってやっと紐解けた感じ。
16進数文字列とbyte配列とかの変換のワナに引っかかったりしたけど、なんとかできた。
(ロジックがロジックなので、参照先のみでソースは公開しませんw)