當前位置:首頁 » 編程語言 » 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演算法網上很多。。