AES 256 加密和解密 for C

2021-06-11 01:59:38 字數 1377 閱讀 6265

這幾天在寫乙個對檔案進行加密解密的程式,翻了以前在貼過的一段**,稍微整理了一下,寫成乙個方便呼叫的類,並做了注釋。

這裡需要特別說明的是,aes 需要提供2個字串,乙個是key,乙個是iv,並且都有長度要求。但對於一般的加密來說,是比較麻煩的。所以我還提供了乙個方便呼叫的 ****** 方法,只需提供乙個密碼,通過 md5 自動處理為 32 位長度的 key,並擷取其中 16 位作為 iv,這樣在呼叫的時候,也方便許多。

以下是**:

using system.security.cryptography;

using system.text;

// 阿博-style

// www.abo-style.com

namespace abostyle

#endregion

#region encryptor

/// /// 對位元組陣列進行加密

///

/// 要加密的位元組

/// 金鑰(32位)

/// 初始化向量(16位)

/// 加密後的結果

public static byte encryptor(byte bs, string key, string iv)

#endregion

#region decryptor

/// /// 對位元組陣列進行解密

///

/// 要解密的位元組

/// 金鑰(32位)

/// 初始化向量(16位)

/// 解密後的結果

public static byte decryptor(byte bs, string key, string iv)

#endregion

#region ******

/// /// 方便簡單呼叫的加密或解密統一方法

///

/// 是否為加密?true 為加密,false 為解密

/// 要加密或解密的位元組

/// 密碼(任意長度,使用md5處理為32位)

/// 處理後的位元組

public static byte ******(bool encrypt, byte bs, string password)

// key 為 md5

string key = md5.tostring();

// iv 為 md5 中擷取中間的16位字元

string iv = key.substring(8, 16);

// 根據是否加密 呼叫不同的方法

return encrypt ? encryptor(bs, key, iv) : decryptor(bs, key, iv);

}#endregion

}}

aes256加密 關於ssl證書使用的加密套件

一 ciphers是配置ssl證書所需的加密套件,基於openssl。使用者可以控制在協商tls連線時要考慮的密碼。使已知密碼的名稱根據libcurl構建tls後端。ssl協議有sslv2,sslv3,tlsv1,tlsv1.1和tlsv1.2。目前推薦使用的有tlsv1.2,其它協議都存在各種安全...

pycrypto實現AES加密和解密

一 coding utf 8 import string import random from crypto.cipher import aes def keygenerater length 生成指定長度的秘鑰 if length not in 16,24,32 return none x str...

python 實現AES加密和解密

參考 aes加密演算法是一種對稱加密演算法,他有乙個密匙,即用來加密,也用來解密 importbase64 fromcrypto.cipherimportaes 金鑰 key 密斯偏移量 iv cbc模式加密 defaes encrypt key,data vi 0102030405060708 p...