当前位置:首页 » 编程语言 » c语言base64解码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言base64解码

发布时间: 2022-01-21 15:47:20

㈠ 用c语言实现算术编码和解码

/*我觉得应该是你相互换吧?*/
void code(char *p)
{
*p+=5;/*相应加5个数字我觉得字母不可能存在大于250的哈*/
}
void codec(char *p)
{*p-=5;}
main()
{
char a[100];
int i;
printf("Enter the string!\n");
scanf("%s",a);/*输入字符*/
for(i=0;a[i]!='\0';i++)
{
code(a+i);/*加密*/
}
printf("\ncode string is:%s",a);
for(i=0;a[i]!='\0';i++)
{codec(a+i);}
printf("\nenter string is:%s",a);
}

㈡ c语言怎样用base64实现迅雷地址转换

叶剑飞
*
*
*
* 使用说明:
* 命令行参数说明:若有“-d”参数,则为base64解码,否则为base64编码。
* 若有“-o”参数,后接文件名,则输出到标准输出文件。
* 输入来自标准输入stdin,输出为标准输出stdout。可重定向输入输出流。
*
* base64编码:输入任意二进制流,读取到文件读完了为止(键盘输入则遇到文件结尾符为止)。
* 输出纯文本的base64编码。
*
* base64解码:输入纯文本的base64编码,读取到文件读完了为止(键盘输入则遇到文件结尾符为止)。
* 输出原来的二进制流。
*
*/

㈢ C语言编程:编写一个函数base64加密

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

constchar*chlist="+/";

intencode_string(char*str,unsignedintlength,char*stat){
chars[103];
inti,j;
unsignedtemp;
if(length<=0)return1;
if(length>100)return2;
str[length]='';
strcpy(s,str);
while(strlen(s)%3)strcat(s,"=");
for(i=0,j=0;s[i];i+=3,j+=4){
temp=s[i];
temp=(temp<<8)+s[i+1];
temp=(temp<<8)+s[i+2];
stat[j+3]=chlist[temp&0X3F];
temp>>=6;
stat[j+2]=chlist[temp&0X3F];
temp>>=6;
stat[j+1]=chlist[temp&0X3F];
temp>>=6;
stat[j+0]=chlist[temp&0X3F];
}
stat[j]='';
return0;
}

intIndex(charch){
inti;
for(i=0;chlist[i];++i){
if(chlist[i]==ch)
returni;
}
return-1;
}

voiddecode_string(char*s,char*t){
unsignedtemp;
inti,j,k,len=strlen(s);
if(len%4){
printf("无效数据。 ");
exit(2);
}
for(i=0,j=0;i<=len;i+=4,j+=3){
temp=0;
for(k=0;k<4;++k)
temp=(temp<<6)+Index(s[i+k]);
for(k=2;k>=0;--k){
t[j+k]=temp&0XFF;
temp>>=8;
}
}
t[j+k]='';
}

intmain(){
chars[100]="1a2a3s4dff5fj6u7M8B9P0O1U2";
chart[150],u[100];
printf("s=%s ",s);
encode_string(s,strlen(s),t);
printf("t=%s ",t);
decode_string(t,u);
printf("u=%s ",u);
return0;
}

㈣ 考C语言中解码是什么意思

解码一般是时多媒体术语,声音、视频、图片等文件都必须经过编码成二进制代码才能存储,解码就是用播放器(或其他软件)对编码的二进制代码进行解码,让二进制代码恢复成原始的视频、图片和声音,这样你才能看到视频或图片,听到声音。

㈤ 求纯C语言的加密解密算法编码(AES、DES。。。。。。)

请选择参考资料的网页
BeeCrypt 是一个包含高度优化的C语言加密库,包括MD5,SHA-等多种加密解密算法,该库是通用函数库,并与任何版权无关。符合GNU开放源码要求

点击下列连接可以直接下载源代码

http://prdownloads.sourceforge.net/beecrypt/beecrypt-4.1.2.tar.gz?download

㈥ C语言对文件字符串进行解码

#include<stdio.h>
main(){
FILE*fp1,*fp2;
chara[100];
charsecret[]="Kirschsaft!";
inti,j;
fp1=fopen("source.txt","r");
fp2=fopen("result.txt","w");
if(fp1==NULL||fp2==NULL)
return;
while(fgets(a,100,fp1)!=NULL){
for(i=0,j=0;a[i]!=' ';i++,j++){
if(j==11)
j=0;
if((int)a[i]>=32){
a[i]=a[i]^secret[j];
if((int)a[i]<32){
a[i]=a[i]+32;
}
}
}
for(;j>0&&j<11;j++,i++){
a[i]=secret[j];
}
a[i++]=' ';
a[i]='';
fprintf(fp2,"%s",a);
}
}

应该是限制高3位,使得每个字符的ASCII码大于0010 0000,即32。

我的策略是如果做完异或之后的ASCII码小于32就给他加32.

㈦ C语言的Base64解码

加一个break跳出循环即可。

#include<stdio.h>
#include<string.h>
intmain(void)
{
chary[4000]/*原文本*/,b[3999*4/3]/*待解的Base64码*/,mb[64]/*Base64码表*/;
inti,j/*i,j为两个计数用的变量*/,zu/*将待解的Base64码分成4个字符一组,zu用于记录第几组*/;
for(i=0;i<26;++i)mb[i]=i+65;
for(i=0;i<26;++i)mb[i+26]=i+97;
for(i=0;i<10;++i)mb[i+52]=i+48;
mb[62]='+';
mb[63]='/';/*对码表赋值*/
for(i=0;i<4000;++i)y[i]=0;
for(i=0;i<3999*4/3;b[i++]=0);/*清空两个字符串*/
fgets(b,3999*4/3-1,stdin);/*输入Base64码*/
for(i=0;i<strlen(b)-1;++i)/*处理b中的每个字符*/
for(j=0;j<64;++j)
if(mb[j]==b[i])
{
b[i]=j; /*寻找各字符对应的码表序号,貌似就是这里出的问题*/
break;/*一找到就跳出,可避免重复比较。没有这句会重复比较到最后,如果j的值刚好落在字符数字的ASCII码中,会引起的重复的给b[i]赋值*/
}
for(zu=0;zu<(strlen(b)-1)/4;++zu)/*Base64解码*/
{
y[zu*3+0]=((b[zu*4+0]<<2))|(b[zu*4+1]>>4);
y[zu*3+1]=((b[zu*4+1]<<4))|(b[zu*4+2]>>2);
y[zu*3+2]=((b[zu*4+2]<<6))|b[zu*4+3];
}
printf("%s ",y);/*输出原文本*/
return0;
}

㈧ 如何用C语言写base64来解码dat文件还原为GIF图

LZ是要解什么游戏的
代码我用,不过是c#的

㈨ 计算机文件编码解码c语言如何实现

voidcodec(char*p){*p-=5;}main(){chara[100];inti;printf("Enterthestring!\n");scanf("%s",a);/*输入字符*/for(i=0;a[i]!='\0';i++){code(a+i);/*加密*/}printf("\ncodestringis:%s",a);for(i=0;a[i]!='\0';i++){codec(a+i);}printf("\nenterstringis:%s",a);}

㈩ c语言如何实现16进制字符串转换为 base64

base64加密,解密的对象就是字符串。。。。

base64算法网上很多。。