/*本問題的關鍵是如何交換ASCII的二進制位,下面提供簡短演算法,並附上VC++6.0環境下的運行結果截圖。
*/
#include<stdio.h>
charswapbit(charc){
chari,num=0,ch[8];
for(i=0;i<8;i++){
ch[i]=c&1;
c=(c>>1);
}
for(i=0;i<8;i++){
num=2*num+ch[i];
}
returnnum;
}
intmain(){
charch;
for(ch='A';ch<='Z';ch++){
printf("%c=%X:%X ",ch,ch,0XFF&swapbit(ch));
}
return0;
}
② C語言對稱及可逆加密演算法,急!!!
#include<stdio.h>
#include<string.h>
voidEncode(chars[],charkey[]){
inti,j,k,t,ch;
chartmp[9];
intlen=strlen(key);
for(i=0,j=0;s[i];++i){
t=key[j];
for(k=0;k<8;++k){
tmp[k]=(s[i]&1)^(t&1);
s[i]>>=1;
t>>=1;
}
ch=0;
for(k=7;k>=0;--k)
ch=2*ch+tmp[k];
s[i]=ch;
j=(j+1)%len;
}
}
intmain(){
chars[]="AbcdXYZ2014";
charkey[]="GodKnow";
printf("明文:%s ",s);
Encode(s,key);
printf("密文: %s ",s);
Encode(s,key);
printf("明文:%s ",s);
return0;
}
③ 對稱加密演算法有哪些
對稱加密演算法是應用較早的加密演算法,技術成熟。
主要有DES演算法,3DES演算法,TDEA演算法,Blowfish演算法,RC5演算法,IDEA演算法。
④ 密碼學基礎(二):對稱加密
加密和解密使用相同的秘鑰稱為對稱加密。
DES:已經淘汰
3DES:相對於DES有所加強,但是仍然存在較大風險
AES:全新的對稱加密演算法。
特點決定使用場景,對稱加密擁有如下特點:
速度快,可用於頻率很高的加密場景。
使用同一個秘鑰進行加密和解密。
可選按照128、192、256位為一組的加密方式,加密後的輸出值為所選分組位數的倍數。密鑰的長度不同,推薦加密輪數也不同,加密強度也更強。
例如:
AES加密結果的長度由原字元串長度決定:一個字元為1byte=4bit,一個字元串為n+1byte,因為最後一位為'