国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

poco aes 加密

2019-11-08 19:32:26
字體:
來源:轉載
供稿:網友

poco aes 加密

AES加密數據塊分組長度必須為128比特,密鑰長度可以是128比特、192比特、256比特中的任意一個(如果數據塊及密鑰長度不足時,會補齊)。

poco aes 加密需要注意的兩點: 使用的填充方式是 PKCS5Padding 使用的密鑰最好是16的整數倍。如果不是的話,就不知道他會用啥密鑰來加密了。最好是這樣 setKey() 一下。

Cipher::ByteVec b(16); for( int i = 0; i< 16; ++i ) { b[i] = 's'; } CipherKey key("aes-128-ecb" ); key.setKey( b );

驗證網站

下面是別人總結的經驗不知道對不對,但是感覺很有道理的樣子。

來源

不帶模式和填充來獲取AES算法的時候,其默認使用ECB/PKCS5Padding。 算法/模式/填充 16字節加密后數據長度 不滿16字節加密后長度 AES/CBC/NoPadding 16 不支持 AES/CBC/PKCS5Padding 32 16 AES/CBC/ISO10126Padding 32 16 AES/CFB/NoPadding 16 原始數據長度 AES/CFB/PKCS5Padding 32 16 AES/CFB/ISO10126Padding 32 16 AES/ECB/NoPadding 16 不支持 AES/ECB/PKCS5Padding 32 16 AES/ECB/ISO10126Padding 32 16 AES/OFB/NoPadding 16 原始數據長度 AES/OFB/PKCS5Padding 32 16 AES/OFB/ISO10126Padding 32 16 AES/PCBC/NoPadding 16 不支持 AES/PCBC/PKCS5Padding 32 16 AES/PCBC/ISO10126Padding 32 16 可以看到,在原始數據長度為16的整數倍時,假如原始數據長度等于16*n,則使用NoPadding時加密后數據長度等于16*n,其它情況下加密數據長度等于16*(n+1)。在不足16的整數倍的情況下,假如原始數據長度等于16*n+m[其中m小于16],除了NoPadding填充之外的任何方式,加密數據長度都等于16*(n+1);NoPadding填充情況下,CBC、ECB和PCBC三種模式是不支持的,CFB、OFB兩種模式下則加密數據長度等于原始數據長度。

以下代碼與網站的結果相同。

int main(){ Cipher::ByteVec b(16); for( int i = 0; i< 16; ++i ) { b[i] = 's'; } CipherKey key("aes-128-ecb" ); key.setKey( b ); Cipher::Ptr pCipher = CipherFactory::defaultFactory().createCipher(key); std::string in("123"); std::string out = pCipher->encryptString(in, Cipher::ENC_BASE64); std::string result = pCipher->decryptString(out, Cipher::ENC_BASE64); std::cout<<"加密后:"<<out<<std::endl; std::cout<<"解密后:"<<result<<std::endl;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平乐县| 青川县| 彩票| 安宁市| 兴和县| 壶关县| 河西区| 垫江县| 新巴尔虎左旗| 台湾省| 江安县| 五台县| 江陵县| 泰顺县| 赤壁市| 广南县| 正宁县| 南涧| 河北区| 仪陇县| 云霄县| 长乐市| 容城县| 湟中县| 平远县| 龙山县| 蒙自县| 秦安县| 濮阳县| 尉犁县| 穆棱市| 渝中区| 砀山县| 桦川县| 肥乡县| 清水河县| 牙克石市| 禄丰县| 思南县| 苏尼特左旗| 姚安县|