返信>>宜しくお願いします。エラーが出たなら詳細も載せてくださいなありがとうございます。ソースを、下記のとおり変更する事でエラーが無くなり、暗号化→複合ができるようになりました。128;ただ、こちらで期待している値と違う結果が返されます。元のプログラムから、RC4暗号化と思っておりましたが、間違っているのか調べています。元ソース(C++2003)では下記の手順で処理しています。複合CryptDecrypt(hKey,0,TRUE,0,pbData,&dwDataLen);------------------------------------------------------------------根本的にRC4でないなど、そのような問題でしょうか?申し訳ありませんが、宜しくお願いします。RC4と書いておりましたが、引数にあるPROV_RSA_FULLから判断しました。http://www015.upp.so-net.ne.jp/HMMN/CryptoAPI/Crypto_Encrypt_detail.htmlただ、参考にされたと思われる(http://www.trustss.co.jp/smnEasyEnc1E0.html)にはAESと書かれています。どちらが正しいか判断できますでしょうか。C#アプリの結果と、参考URLの結果が同じになるようにしたいと思っています。ご教授をお願い致します。根本的にRC4でないなど、そのような問題でしょうか?示されたリンク先はざっと眺めた程度ですが、何をしているのかよく読んだほうが良いと思います。リンク先やべん吉さんの示したコードはRC4で暗号化するだけのコードではありません。パスワードからハッシュを求め、そのハッシュから鍵を生成し、その鍵で暗号化を行っています。普通に「RC4で暗号/復号」というと、鍵を用いて平文/暗号文変換を行う部分のみを指します。パスワード・ハッシュ・鍵の違いを意識してリンク先を読むと何が問題なのかわかると思います。.NetのクラスライブラリにはSHAアルゴリズムは入っています。それを利用してもいいですし、自分で実装しても大して手間ではありません。CryptoXXXなどのCryptAPIをPInvokeで呼び出しても作れます。クラスとしたいのであれば、内部でCryptoAPIを呼び出すような、ICryptoTransformを実装したRC4Transformクラスを作り、そのキーにパスワードをSHAでハッシュしたバイト列を与えてやるような実装にすると他のクラスとの整合性が取れていてよいと思います。Providerがインストールされていなかったり、いくつかのバージョンで問題があったりと、環境依存になる場合もあります。Providerを使わないと制限が多くて困ると思いますが、たまにこれが使えない環境があるようですのでご注意を。#.Netが動き、最新のパッチのあたったPCなら大抵の場合は問題ないと思いますが。