トリプル DES URL エンコード文字列 (たとえば、"q" という名前のクエリ文字列変数でページに渡される) を復号化する方法の例で、PHP 以外の開発者を誰かが助けてくれることを期待していました。
キーは 24 ビットで、初期化ベクトルは 8 ビットです。
C# では、元のデータは次のとおりです。
- バイト配列としてエンコードされた UTF-8
- キーと IV で暗号化
- Base 64 文字列としてエンコード
- 文字列としてエンコードされた URL
...
byte[] rawData;
TripleDES tripleDESalg = TripleDES.Create();
rawData = UTF8Encoding.UTF8.GetBytes(message);
ICryptoTransform cTransform = tripleDESalg.CreateEncryptor(key, IV);
byte[] resultArray = cTransform.TransformFinalBlock(rawData, 0, rawData.Length);
tripleDESalg.Clear();
encryptedText = Convert.ToBase64String(resultArray);
...
PHPページでは、これらのステップを一緒に行う方法の例を実際に見つけることができません:
- クエリ文字列変数「q」で URL エンコードされた文字列をデコードします
- Base 64 でエンコードされた文字列をデコードします (例: base64_decode)
- 暗号化に使用されたのと同じキーとivを使用して値を復号化します(暗号化と復号化を制御し、両方のシステムがキーとivが何であるかを知っていると仮定します)
- 出力を印刷/エコー