#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
const string toHexString(const unsigned char* input, const int datasize);
const string ToHexString(const unsigned char* input, const int datasize);
string* byteToHexStr(unsigned char byte_arr[], int arr_len);
const string toHexString(const unsigned char* input, const int datasize)
{
string output;
char ch[3];
for(int i = 0; i < datasize; ++i)
{
sprintf_s(ch, 3, "%02x", input[i]);
output += ch;
}
return output;
}
const string ToHexString(const unsigned char* input, const int datasize)
{
char output[33];
for(int j = 0; j < datasize; j++ )
{
unsigned char b = *(input+j);
sprintf_s( output+j * 2,3, "%02x",b);
}
return string(output) ;
}
string* byteToHexStr(unsigned char byte_arr[], int arr_len)
{
string* hexstr=new string();
for (int i=0;i<arr_len;i++)
{
char hex1;
char hex2;
int value=byte_arr[i];
int v1=value/16;
int v2=value % 16;
if (v1>=0&&v1<=9)
hex1=(char)(48+v1);
else
hex1=(char)(55+v1);
if (v2>=0&&v2<=9)
hex2=(char)(48+v2);
else
hex2=(char)(55+v2);
*hexstr=*hexstr+hex1+hex2;
}
return hexstr;
}