3DESで暗号化されたデータをC/C++で復号化したいのですが
可能でしょうか。
可能であれば、どのライブラリを使用し、どう組めば、よいか教えてください。
「可能か?」ということであれば、条件付きで可能でしょう。
とりあえず、ググってみました。
http://www.google.co.jp/search?num=30&hl=ja&q=DES+%E5%BE%A9%E5%8F%B7+%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
libdesというモノがあるらしい。
3DESではないのでは?
というのでしたら「3DES」がどうやっているのか調べましょう。
とりあえず、検索してみただけなので実装方法などについては不明です。
「可能でしょうか」って聞いてくる人って
何が不可能だと思ってるんでしょうかね…
OpenSSL (http://www.openssl.org/) はいかが?
個人的な感想はこんな感じ。
- 実績が非常に高い。
- APIのドキュメントがヘボい。
- インストール(コンパイル)ドキュメントは丁寧。
- ちょいとデカい。3DESのみの暗号化/復号をするだけなら、鶏を割くに牛刀を用いるようなものかも。
# どーでもいいかもしれない豆知識:
# OpenSSLでは、暗号化も復号も*_encrype()といった関数で行います。
# どっちを行うかは引数次第。
# 以前、*_decrypt()はどこだと30分探し回ってしまいました。
MicorosftのCryptoAPIにも3DESの実装ありまっせ。
CryptAcquireContextでCSP取得して、
CryptGenKeyとかCryptDeriveKeyでキー作って
CryptDecryptで複合って感じです。
お手軽にやるならCOMでラップしたCAPICOMってのもあります。