缺點 演算法
說明des
資料加密標準(用的少,因為強度不夠)
3des
使用3個金鑰,對相同的資料執行三次加密,強度增強
aes高階加密標準,目前美國****局使用的
蘋果的鑰匙串訪問採用的是 aes 加密
ecb
# 加密
$ openssl enc -des-ecb -k 616263 -nosalt -in msg1.txt -out msg1.bin
# 解密
$ openssl enc -des-ecb -k 616263 -nosalt -in msg1.bin -out msg1.txt -d
# 檢視加密之後的二進位制檔案
$ xxd msg1.bin
cbc# 加密
$ openssl enc -des-cbc -k 616263 -iv 0000000000000000 -nosalt -in a.txt -out msg1.bin
# 解密
$ openssl enc -des-cbc -k 616263 -iv 0000000000000000 -nosalt -in msg1.bin -out msg4.txt -d
# 檢視加密之後的二進位制檔案
$ xxd msg1.bin
cbc加密可以有效地保證密文的完整性,也就是說如果有乙個塊在傳送時丟失了(或被敵人改變了),就會導致後面所有的塊無法正常解密這個特性可以用來防範一些竊聽技巧
nsstring *key = @"abc";
// ecb 加密&解密
nsstring *str1 = [cryptortools aesencryptstring:@"hello" keystring:key iv:nil];
nslog(@"aes ecb 加密 %@", str1);
nslog(@"aes ecb 解密 %@", [cryptortools aesdecryptstring:str1 keystring:key iv:nil]);
// cbc 加密&解密
uint8_t iv[8] = ;
nsdata *ivdata = [nsdata datawithbytes:iv length:sizeof(iv)];
nsstring *str2 = [cryptortools aesencryptstring:@"hello" keystring:key iv:ivdata];
nslog(@"aes cbc 加密 %@", str2);
nslog(@"aes cbc 解密 %@", [cryptortools aesdecryptstring:str2 keystring:key iv:ivdata]);
nsstring *key = @"abc";
// ecb 加密&解密
nsstring *str1 = [cryptortools desencryptstring:@"hello" keystring:key iv:nil];
nslog(@"des ecb 加密 %@", str1);
nslog(@"des ecb 解密 %@", [cryptortools desdecryptstring:str1 keystring:key iv:nil]);
// cbc 加密&解密
uint8_t iv[8] = ;
nsdata *ivdata = [nsdata datawithbytes:iv length:sizeof(iv)];
nsstring *str2 = [cryptortools desencryptstring:@"hello" keystring:key iv:ivdata];
nslog(@"des cbc 加密 %@", str2);
nslog(@"des cbc 解密 %@", [cryptortools desdecryptstring:str2 keystring:key iv:ivdata]);
# aes(ecb)加密
$ echo -n "hello" | openssl enc -aes-128-ecb -k 616263 -nosalt | base64
# aes(ecb)解密
$ echo -n "d1qg4t2tivoi0kiu3nemzq==" | base64 -d | openssl enc -aes-128-ecb -k 616263 -nosalt -d
# des(ecb)加密
$ echo -n "hello" | openssl enc -des-ecb -k 616263 -nosalt | base64
# des(ecb)解密
$ echo -n "hqr0oij2kbo=" | base64 -d | openssl enc -des-ecb -k 616263 -nosalt -d
# aes(cbc)加密
$ echo -n "hello" | openssl enc -aes-128-cbc -iv 0102030405060708 -k 616263 -nosalt | base64
aes(cbc)解密
$ echo -n "u3w/n816uzfpcg6pz+kbdg==" | base64 -d | openssl enc -aes-128-cbc -iv 0102030405060708 -k 616263 -nosalt -d
# des(cbc)加密
$ echo -n "hello" | openssl enc -des-cbc -k 616263 -nosalt -iv 0102030405060708 | base64
# des(cbc)解密
$ echo -n "alvrvb3gz88=" | base64 -d | openssl enc -des-cbc -k 616263 -nosalt -iv 0102030405060708
-d
終端命令說明 對稱加密演算法 非對稱加密演算法
對稱加密演算法 對稱加密演算法是應用較早的加密演算法,技術成熟。在對稱加密演算法中,資料發信方將明文 原始資料 和加密金鑰一起經過特殊加密演算法處理後,使其變成複雜的加密密文傳送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的金鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文...
對稱加密演算法 DES加密演算法
一 對稱加密演算法 對稱加密也稱為常規加密 私鑰或單鑰加密。乙個對稱加密由5部分組成 明文 plaintext 這是原始資訊或資料,作為演算法的輸入。加密演算法 encryption algorithm 加密演算法對明文進行各種替換和轉換。金鑰 secret key 金鑰也是演算法的輸入。演算法進行...
對稱加密演算法
對稱加密演算法由古典加密演算法演化而來,解密和加密互為逆運算,加密和解密秘鑰相同,因而稱為對稱加密演算法,具有代表性的有des 3des aes pbe idea。des由ibm提出堪稱經典對稱加密演算法,不僅應用在軟體行業,甚至滲透到硬體行業。後來逐漸發現des存在3個安全隱患 金鑰太短 迭代偏少...