2011-09-18 23 views
5

PHPアプリケーションをC++に移植しています。 PHPアプリケーションは、この機能を使用している:PHPのhash_hmac関数のC++に相当するものは何ですか?

hash_hmacを - 私はこのコードを持っている場合はHMAC方式

を使用してハッシュ値を生成する、それが実際に何をしているのですか?

$sStr = hash_hmac ('sha256', $mydata,$mykey, $raw = true) 

私はそれはSHA256と私のキーを使用して、いくつかのデータを暗号化し知っているが、どのように私はC++でこれを行うことができますか?

私はhmacsha2ライブラリを見つけましたが、必要なものかどうかはわかりません。

+0

あなたがC++コードへのポートのPHPコードにしたいのはなぜ? – daGrevis

+1

パフォーマンスの向上 – user63898

答えて

16

OpenSSLは、ポータブルで完全な暗号ライブラリ(その名前にもかかわらず、SSLだけではありません)を調べることを検討します。それはあなたが確かに同様の機能を得るためにラップすることができるHMAC libraryを持っています。ここで

another question on StackOverflow(注釈鉱山)から取られたOpenSSLの「HMACライブラリを、使用方法の例です:

// Initialize HMAC object. 
HMAC_CTX ctx; 
HMAC_CTX_init(&ctx); 

    // Set HMAC key. 
HMAC_Init_ex(&ctx, key, 16, EVP_sha256(), NULL); 

    // May be called repeatedly to insert all your data. 
HMAC_Update(&ctx, data, 8); 

    // Finish HMAC computation and fetch result. 
HMAC_Final(&ctx, result, &result_len); 

    // Done with HMAC object. 
HMAC_CTX_cleanup(&ctx);