ecb在線加密
① 在DES加密里邊,ECB和CBC有什麼區別
一、優點不同:
ECB模式
1、簡單;
2、有利於並行計算;
3、誤差不會被傳送;
CBC模式:
1、不容易主動攻擊,安全性好於ECB,適合傳輸長度長的報文,是SSL、IPSec的標准。
二、缺點不同:
ECB模式
1、不能隱藏明文的模式;
2、可能對明文進行主動攻擊;
CBC模式:
1、不利於並行計算;
2、誤差傳遞;
3、需要初始化向量IV
三、概念不同
1、ECB模式又稱電子密碼本模式:Electronic codebook,是最簡單的塊密碼加密模式,加密前根據加密塊大小(如AES為128位)分成若干塊,之後將每塊使用相同的密鑰單獨加密,解密同理。
2、密碼分組鏈接(CBC,Cipher-block chaining)模式,由IBM於1976年發明,每個明文塊先與前一個密文塊進行異或後,再進行加密。在這種方法中,每個密文塊都依賴於它前面的所有明文塊。同時,為了保證每條消息的唯一性,在第一個塊中需要使用初始化向量IV。
(1)ecb在線加密擴展閱讀:
1976年,IBM發明了密碼分組鏈接(CBC,Cipher-block chaining)模式。在CBC模式中,每個明文塊先與前一個密文塊進行異或後,再進行加密。在這種方法中,每個密文塊都依賴於它前面的所有明文塊。同時,為了保證每條消息的唯一性,在第一個塊中需要使用初始化向量。
若第一個塊的下標為1,則CBC模式的加密過程為:
Ci = Ek (P ⊕ Ci-1), C0 = IV.
而其解密過程則為:
Pi = Dk (Ci) ⊕Ci-1, C0 = IV.
CBC是最為常用的工作模式。它的主要缺點在於加密過程是串列的,無法被並行化,而且消息必須被填充到塊大小的整數倍。解決後一個問題的一種方法是利用密文竊取。
注意在加密時,明文中的微小改變會導致其後的全部密文塊發生改變,而在解密時,從兩個鄰接的密文塊中即可得到一個明文塊。因此,解密過程可以被並行化,而解密時,密文中一位的改變只會導致其對應的明文塊完全改變和下一個明文塊中對應位發生改變,不會影響到其它明文的內容。
② iOS AES128 ECB加密 對位元組數組而不是字元串怎麼進行加密
// 開發中用到AES128加密、解密
#import <Foundation/Foundation.h>
#import <CommonCrypto/CommonCryptor.h>
@interface NSData (AES)
- (NSData *)AES128Operation:(CCOperation)operation key:(NSString *)key iv:(NSString *)iv;
- (NSData *)AES128EncryptWithKey:(NSString *)key iv:(NSString *)iv;
- (NSData *)AES128DecryptWithKey:(NSString *)key iv:(NSString *)iv;
@end
@implementation NSData (AES)
- (NSData *)AES128Operation:(CCOperation)operation key:(NSString *)key iv:(NSString *)iv
{
char keyPtr[kCCKeySizeAES128 + 1];
memset(keyPtr, 0, sizeof(keyPtr));
[key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];
char ivPtr[kCCBlockSizeAES128 + 1];
memset(ivPtr, 0, sizeof(ivPtr));
[iv getCString:ivPtr maxLength:sizeof(ivPtr) encoding:NSUTF8StringEncoding];
NSUInteger dataLength = [self length];
size_t bufferSize = dataLength + kCCBlockSizeAES128;
void *buffer = malloc(bufferSize);
size_t numBytesCrypted = 0;
CCCryptorStatus cryptStatus = CCCrypt(operation,
kCCAlgorithmAES128,
kCCOptionPKCS7Padding,
keyPtr,
kCCBlockSizeAES128,
ivPtr,
[self bytes],
dataLength,
buffer,
bufferSize,
&numBytesCrypted);
if (cryptStatus == kCCSuccess) {
return [NSData dataWithBytesNoCopy:buffer length:numBytesCrypted];
}
free(buffer);
return nil;
}
- (NSData *)AES128EncryptWithKey:(NSString *)key iv:(NSString *)iv
{
return [self AES128Operation:kCCEncrypt key:key iv:iv];
}
- (NSData *)AES128DecryptWithKey:(NSString *)key iv:(NSString *)iv
{
return [self AES128Operation:kCCDecrypt key:key iv:iv];
}
@end
int main(int argc, char const* argv[])
{
NSAutoreleasePool* pool;
pool = [[NSAutoreleasePool alloc] init];
NSString *key = [NSString stringWithCString:argv[1] encoding:NSUTF8StringEncoding];
NSString *iv = [NSString stringWithCString:argv[2] encoding:NSUTF8StringEncoding];
NSString *data_str = [NSString stringWithCString:argv[3] encoding:NSUTF8StringEncoding];
NSData *data = [data_str dataUsingEncoding:NSUTF8StringEncoding];
NSData *en_data = [data AES128EncryptWithKey:key iv:iv];
NSData *de_data = [en_data AES128DecryptWithKey:key iv:iv];
NSString *de_str = [[[NSString alloc] initWithData:de_data
encoding:NSUTF8StringEncoding] autorelease];
NSLog(@"%@", en_data);
NSLog(@"%@", de_str);
[pool drain];
return 0;
}
③ ecb模式不同明文分組的加密可進行實時硬體實現速度快
咨詢記錄 · 回答於2021-11-03
④ aes 128,192,256如何加密如何解密有沒有在線工具在線加密,在線解密
....比如『明文』用aes-ecb-256加密 zp填充 密碼123 以utf8輸出b64加密後就變成了『/9+LAeoE=』解密就要反過來
所以你要知道你要解密的文件 加密方式 密碼 填充 輸出(二次加密) 和 編碼 甚至還有偏移量所以 爆破?不存在的
⑤ 關於openssl AES/ECB/PKCS5Padding加密 求助
ecb加密方式,其實底層是調用AES_encrypt介面,你可以去看源碼。
下面的代碼給你一個參考,只不過,我是在調用aes_encrypt外面,自己嚴格控制了in和out的長度,out的長度大於in,並且必須是大於等於16的整數倍。
⑥ 自己寫的aes加密工具類的加密結果為什麼與在線aes加密
Cipher.getInstance("AES/ECB/PKCS5Padding");
就是這個東西有很多標準的,你得看下線上用的是什麼標准
AES/CBC/NoPadding (128)
AES/CBC/PKCS5Padding (128)
AES/ECB/NoPadding (128)
AES/ECB/PKCS5Padding (128)
DES/CBC/NoPadding (56)
DES/CBC/PKCS5Padding (56)
DES/ECB/NoPadding (56)
DES/ECB/PKCS5Padding (56)
DESede/CBC/NoPadding (168)
DESede/CBC/PKCS5Padding (168)
DESede/ECB/NoPadding (168)
DESede/ECB/PKCS5Padding (168)
RSA/ECB/PKCS1Padding (1024, 2048)
RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024, 2048)
RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024, 2048)
⑦ 關於openssl AES/ECB/PKCS5Padding加密 求助
你的代碼寫的夠亂的啊,ecb加密方式,其實底層是調用AES_encrypt介面,你可以去看源碼。
下面的代碼給你一個參考,只不過,我是在調用aes_encrypt外面,自己嚴格控制了in和out的長度,out的長度大於in,並且必須是大於等於16的整數倍。
⑧ MYsql AES 加密
使用mysql的加密函數運行:
select HEX(AES_ENCRYPT( 'test aes encrypt','123')) as aesTest
輸出密文:
https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#function_aes-encrypt
官方文檔解釋:
The block_encryption_mode system variable controls the mode for block-based encryption algorithms. Its default value is <font color="red"> aes-128-ecb </font>, which signifies encryption using a key length of 128 bits and ECB mode. For a description of the permitted values of this variable, see Section 5.1.8, 「Server System Variables」 .
在線加密驗證 : http://tool.chacuo.net/cryptaes
該網加密結果為:
與mysql加密結果一致,只是大小寫差異。
⑨ 關於openssl AES/ECB/PKCS5Padding加密 求助
ecb加密方式,其實底層是調用aes_encrypt介面,你可以去看源碼。
下面的代碼給你一個參考,只不過,我是在調用aes_encrypt外面,自己嚴格控制了in和out的長度,out的長度大於in,並且必須是大於等於16的整數倍。