#include <openssl/md5.h>
#include <algorithm>
std::string MD5(const std::string& src )
{
MD5_CTX ctx;
std::string md5_string;
unsigned char md[16] = { 0 };
char tmp[33] = { 0 };
MD5_Init( &ctx );
MD5_Update( &ctx, src.c_str(), src.size() );
MD5_Final( md, &ctx );
for( int i = 0; i < 16; ++i )
{
memset( tmp, 0x00, sizeof( tmp ) );
sprintf( tmp, "%02X", md[i] );
md5_string += tmp;
}
return md5_string;
}
std::string authenticateMd5(std::string method, std::string username, std::string password
, std::string realm, std::string nonce, std::string uri)
{
std::string ha1 = MD5(username + ":" + realm + ":" + password);
std::string ha2 = MD5(method + ":" + uri);
transform(ha1.begin(), ha1.end(), ha1.begin(), ::tolower);
transform(ha2.begin(), ha2.end(), ha2.begin
C++ openssl的rtsp握手鉴权加密算法
最新推荐文章于 2024-05-16 07:11:26 发布