帮忙转换成C#,谢谢!!
帮忙转换成C#,谢谢!!
void CClientRegicode::EncodeBase64MSG(char *Src,int Src_len,char *base64code)
{
int len,i,work_Len;
unsigned char* psrc ;
unsigned char Beign;
unsigned char rest ;
const char szBase64TableOld2[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; //$ 标准
const char szBase64TableOld [] = {'P','Q','R','S','T','U','a','b','c','d','e','f','g','h','A','B','C','D','E','K','L','M','y','z',
'0','1','N','O','V','W','X','Y','Z','i','j','k','q','r','s','5','6','7','8','9','t','u','v','w',
'x','2','3','4','+','/','F','G','H','I','J','l','m','n','o','p'}; //- * 变化
char szBase64Table [] = {'P','Q','R','S','T','U','a','b','c','d','e','f','g','h','A','B','C','D','E','K','L','M','y','z',
'0','1','N','O','V','W','X','Y','Z','i','j','k','q','r','s','5','6','7','8','9','t','u','v','w',
'x','2','3','4','+','/','F','G','H','I','J','l','m','n','o','p'}; //- * 变化
work_Len = Src_len;
if (Src[4]=='-'||Src[4]=='*'||Src[4]=='$')
{
psrc = (unsigned char*)&Src[5]; work_Len=work_Len-5;
*base64code=Src[0];base64code++;
*base64code=Src[1];base64code++;
*base64code=Src[2];base64code++;
*base64code=Src[3];base64code++;
*base64code=Src[4];base64code++;
i=atoi(Src) % 63;
if (i!=0)
{
if (Src[4]=='$')
{
memcpy(szBase64Table ,&szBase64TableOld2[i],64-i);
memcpy(&szBase64Table[64-i],szBase64TableOld2 ,i);
}
else
{
memcpy(szBase64Table ,&szBase64TableOld[i],64-i);
memcpy(&szBase64Table[64-i],szBase64TableOld ,i);
}
}
if (Src[4]=='*')
{
char buf[3];buf[2]=0;
len =1;*psrc++;
for (i = 1; i < work_Len ; i=i+2)
{
memcpy(buf,&Src[5+i],2);
*psrc=(unsigned char) (strtoul(buf,NULL,16));
*psrc++;
len++;
}
psrc = (unsigned char*)&Src[5];
work_Len=len;
}
}
else
psrc = (unsigned char*)Src;
rest=0;
Beign=0;
len = 0;
for (i = 0; i < work_Len ; i ++)
{
do
{
*base64code=szBase64Table[ ( Beign<<(6-rest) | *psrc>>(2+rest))&0x3f];
base64code++;
len++;
Beign=*psrc;
rest+=2;
if (rest==8)
{
rest=0;
}
} while (rest>=6);
psrc++;
}
if (rest!=0)
{
*base64code=szBase64Table[ ( Beign<<(6-rest) )&0x3f];
base64code++;
len++;
}
if (((len/4)*4)!=len)
for (i=0;i<((len/4)+1)*4-len;i++)
{
*base64code='=';
base64code++;
}
*base64code = '\0';
}
void CClientRegicode::EncodeBase64MSG(char *Src,int Src_len,char *base64code)
{
int len,i,work_Len;
unsigned char* psrc ;
unsigned char Beign;
unsigned char rest ;
const char szBase64TableOld2[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; //$ 标准
const char szBase64TableOld [] = {'P','Q','R','S','T','U','a','b','c','d','e','f','g','h','A','B','C','D','E','K','L','M','y','z',
'0','1','N','O','V','W','X','Y','Z','i','j','k','q','r','s','5','6','7','8','9','t','u','v','w',
'x','2','3','4','+','/','F','G','H','I','J','l','m','n','o','p'}; //- * 变化
char szBase64Table [] = {'P','Q','R','S','T','U','a','b','c','d','e','f','g','h','A','B','C','D','E','K','L','M','y','z',
'0','1','N','O','V','W','X','Y','Z','i','j','k','q','r','s','5','6','7','8','9','t','u','v','w',
'x','2','3','4','+','/','F','G','H','I','J','l','m','n','o','p'}; //- * 变化
work_Len = Src_len;
if (Src[4]=='-'||Src[4]=='*'||Src[4]=='$')
{
psrc = (unsigned char*)&Src[5]; work_Len=work_Len-5;
*base64code=Src[0];base64code++;
*base64code=Src[1];base64code++;
*base64code=Src[2];base64code++;
*base64code=Src[3];base64code++;
*base64code=Src[4];base64code++;
i=atoi(Src) % 63;
if (i!=0)
{
if (Src[4]=='$')
{
memcpy(szBase64Table ,&szBase64TableOld2[i],64-i);
memcpy(&szBase64Table[64-i],szBase64TableOld2 ,i);
}
else
{
memcpy(szBase64Table ,&szBase64TableOld[i],64-i);
memcpy(&szBase64Table[64-i],szBase64TableOld ,i);
}
}
if (Src[4]=='*')
{
char buf[3];buf[2]=0;
len =1;*psrc++;
for (i = 1; i < work_Len ; i=i+2)
{
memcpy(buf,&Src[5+i],2);
*psrc=(unsigned char) (strtoul(buf,NULL,16));
*psrc++;
len++;
}
psrc = (unsigned char*)&Src[5];
work_Len=len;
}
}
else
psrc = (unsigned char*)Src;
rest=0;
Beign=0;
len = 0;
for (i = 0; i < work_Len ; i ++)
{
do
{
*base64code=szBase64Table[ ( Beign<<(6-rest) | *psrc>>(2+rest))&0x3f];
base64code++;
len++;
Beign=*psrc;
rest+=2;
if (rest==8)
{
rest=0;
}
} while (rest>=6);
psrc++;
}
if (rest!=0)
{
*base64code=szBase64Table[ ( Beign<<(6-rest) )&0x3f];
base64code++;
len++;
}
if (((len/4)*4)!=len)
for (i=0;i<((len/4)+1)*4-len;i++)
{
*base64code='=';
base64code++;
}
*base64code = '\0';
}
...全文
相关推荐
用C#把Excel转换成PDF
总的来说,用C#将Excel转换成PDF涉及多个步骤,包括读取Excel、解析样式、创建PDF以及转换内容。选择适合的库和优化方法是关键,这可以帮助你高效且准确地完成任务。
Json转换成C#实体类工具
这就是"Json转换成C#实体类工具"所解决的问题。这个工具的主要功能是自动化地将JSON格式的数据转换为C#的类定义,极大地提高了开发效率。
C#中char[]与string之间的转换 string 转换成 Char[]
在C#中,我们还可以使用Encoding类来将byte[]转换成string。
C#实现将字符串转换成日期格式的方法
"C#实现将字符串转换成日期格式的方法"在C#编程中,将字符串转换成日期格式是一项常见的任务,特别是在处理用户输入或者解析来自外部数据源的时间数据时。`DateTime.ParseExact()`
C#将字节数组转换成数字的方法
在C#编程中,将字节数组转换成数字是一个常见的需求,特别是在处理二进制数据或序列化/反序列化操作时。本文将重点介绍如何通过C#内置的类和方法实现这一转换过程。具体步骤如下:1. **定义函数:**


