當前位置:首頁 » 密碼管理 » 字元串加密

字元串加密

發布時間: 2022-02-09 17:51:30

⑴ 如何判斷字元串的加密方式

首先,Base64算不上是一種加密演算法

Base64是網路上最常見的用於傳輸8Bit位元組代碼的編碼方式之一,它的目的是用ASCII中定義的可見字元去表示任意的二進制數據。之所以要這樣做,是因為計算機中很多數據是只能通過可見字元去傳輸的(比如我們的網站網址,比如一些面向字元的網路協議如SMTP等),但是這些情景有時由需要去傳輸二進制數據。基於這樣的需要,誕生了Base64.
簡單來講,Base64就是用下列總計64個字元:
A-Z
a-z
0-9
+
/
去表示二進制數據。二進制數據以位元組為組,一個位元組8bit存在256個狀態,而一個Base64字元只有64個狀態。機智的人們於是規定,用每4個Base64字元去表示3個二進制位元組,因為:

64 * 64 * 64 * 64 = 256 * 256 * 256

因此,Base64字元串的長度必然是4的整數倍。此外,由於二進制的位元組數不一定是3的整數倍,所以Base64字元串在結尾是可能有空的。這些空的狀態,Base64引入第65個字元去表示:

=

這也是為什麼Base64很多都是以=或==結尾的。但是注意,也存在不以=或==結尾的Base64,只要編碼的二進制位元組數恰好被3給整除。

總結

一般情況下,一個合法的Base64,有著以下特徵:

字元串的長度為4的整數倍。
字元串的符號取值只能在A-Z, a-z, 0-9, +, /, =共計65個字元中,且=如果出現就必須在結尾出現。

⑵ 使用md5怎麼給一串字元串加密

md5 不是加密演算法,是單向的,就是說經過這個演算法計算得到的結果不可能反推回原始值

⑶ C語言 字元串加密

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain(void)
{
charc[100];
intk;
intlen,i,temp;

scanf("%s",c);
scanf("%d",&k);

len=(int)strlen(c);
k=k%26;

for(i=0;i<len;i++)
{
if(c[i]>='a'&&c[i]<='z')
{
if(c[i]+k>'z')
{
temp='z'-c[i];
temp=k-temp-1;
c[i]='a'+temp;
}
else
{
c[i]+=k;
}
}
elseif(c[i]>='A'&&c[i]<='Z')
{
if(c[i]+k>'Z')
{
temp='Z'-c[i];
temp=k-temp-1;
c[i]='A'+temp;
}
else
{
c[i]+=k;
}
}
else
{
/*donothing*/
}
}

printf("%s ",c);

return0;
}

⑷ 用C語言對字元串加密

沒看懂是什麼意思?輸出的是後幾位的字母及數字,到底輸出多少?加密演算法是什麼??

⑸ 超長字元串如何加密

可以用DES或3DES加密,速度還是比較快的

⑹ C語言字元串加密

#include <stdio.h>

encode(char * s)
{
char * x = s;
if (!x) return;
while(*x) {
(*x) += (char)2;
x++;
}
}

main()
{
char a[80];
scanf("%s", a);
encode(a);
printf(a);
}

⑺ 在c++中如何加密一個字元串

定義一個map<char,char>類型的對象dict,表示字典
map的key是待加密的字元,value是加密後的字元
for(int i = 0;i<string2.size();i++)
{
string2[i] = dict[string2[i]] //dict[string2[i]]表示key 為 string[2] 的 value

}

⑻ 如何對文本/字元串加密解密

加密解密的演算法都沒錯,錯的是解密程序里的文件操作方法。rewind(fp)沒有必要。因為fp已經被close了。一般不推薦同時對一個文件又讀又寫,因為這樣會導致很多緩沖區同步的問題。比如:fputc()和getc()之間,必須要調用fflush(fp);即使這樣,還是會有問題。比如回車,getc()可能會返回兩個字元,\n和\a。但是用fputc()寫入的時候,分別寫入\n和\a會把第二行第一個字元覆蓋掉。正確的做法是:先把解密的數據保存到字元串里,全部結束之後,一次性把解密完的字元串寫到文件里去。voidmain(){charch,name[30];charcontent[1000];intn=0;FILE*fp;printf("name:\a");gets(name);fp=fopen(name,"r+");if(fp==NULL){printf("Nofile:%s!\n\a",name);return;}ch=getc(fp);while(ch!=EOF){if((isalpha(ch))!=0){if((ch>='a'&&ch='A'&&ch<='D'))ch=ch+22;elsech=ch-4;}content[n++]=ch;ch=getc(fp);//ch=getc(fp);}content[n]=0;rewind(fp);fprintf(fp,"%s",content);fclose(fp);printf("%sok\a\n",name);printf("content:%s\n",content);printf("\n");}

⑼ 字元串加密

#include <stdio.h>
#include <stdlib.h>
void replace(char *src, int n)
{
char *s = src;
n = n % 26;
while(*s != 0)
{
*s = *s + n;
if(*s > 'Z') *s -= 26;
s++;
}
}
void disorder(char *s, char *key)
{
int len = 0 , i = 0;
char *tmp;
while(s[len++] != 0);
tmp = (char*)malloc(sizeof(char) * (len));
while(i < len) tmp[i] = s[i++];
for(i = 0; i < len - 1; i++)
{
s[i] = tmp[key[i] - '0' - 1];
}
free(tmp);
}
void main()
{
int n;
char str[100], key[100];
printf("input <str n order >: ");
//請合法輸入eg. AXZ 2 231
scanf("%s%d%s", str, &n, key);
replace(str, n);
printf("str = %s\n", str);
disorder(str, key);
printf("str = %s\n", str);
}

熱點內容
7z解壓很慢 發布:2025-01-11 16:51:23 瀏覽:940
電腦改文檔伺服器 發布:2025-01-11 16:41:14 瀏覽:869
編譯匯編語言實例 發布:2025-01-11 16:36:55 瀏覽:670
海康ntp校時伺服器地址 發布:2025-01-11 16:34:35 瀏覽:743
伺服器運行超時怎麼辦 發布:2025-01-11 16:34:32 瀏覽:298
人妖迅雷種子ftp 發布:2025-01-11 16:33:04 瀏覽:916
python將列表轉化為字元串 發布:2025-01-11 16:32:11 瀏覽:192
大疆穩定器wifi連接初始密碼多少 發布:2025-01-11 16:25:36 瀏覽:890
專線伺服器運行的項目如何訪問 發布:2025-01-11 16:15:13 瀏覽:720
小米智能攝像機雲存儲 發布:2025-01-11 16:12:08 瀏覽:556