2011-05-01から1ヶ月間の記事一覧

C++、C#、HMACSHA1、HMACSHA256

ついでに、CryptAPIでHMACSHA256を作成しました。 当たり前ですが、C#のHMACSHA256と同じ結果を出力します。 HMACSHA1も可。 返り値であるCStringAはバイナリのコンテナとして使用しているので、読める字に直すにはBase64Encodeが必要。 CStringA HMACSHA( c…

暗号化した文字を無事サーバに届けるには、char byte WCHAR間の変換のが必要で、整理してみた。 ネット上では標準になっているUTF8を使用するとして、暗号化した文字を送ると以下になる。 ○Client(C++)->Server(C#)元のデータ(WCHAR)-->EncodeToUtf8(UTF8)->…

C++、C#、秘密鍵、公開鍵、RSA

RSAの鍵作成(C++)->暗号化(C#)->復号化(C++)の例RSAの鍵作成(C++)int _tmain(int argc, _TCHAR* argv[]) { // RSA 秘密鍵と公開鍵を作成し、両方をファイル化 HCRYPTPROV hCryptprov; BOOL bl = CryptAcquireContext(&hCryptprov, NULL, MS_ENH_RSA_AES_PROV…

AES256で暗号化された文字を復号化。 RFC2898 PBKDF2の仕様を満たす関数がMSのCryptAPIに含まれていないが、 ネット上で代わりを見つけたので試してみた。 暗号化はC#static void Main(string[] args) { string password= "password"; // パスワード byte[] …

サーバ上にパスワードを登録する時、サーバは秘密鍵と公開鍵を作成し公開鍵をネットを使ってクライアントへ送出する。 クライアントはパスワードをこの公開鍵を用いて暗号化し、サーバへ送る。 サーバは暗号化されたパスワードを秘密鍵で復号し、パスワード…