AES CBC加密 以及PHP C 實現

2021-06-23 04:25:39 字數 679 閱讀 9092

折騰了好多天, 感謝喬楚大俠的幫忙, 終於搞定了aes - cbc 加密, 特地將加密部分的東西整理一下, 希望能給後人帶來一些幫助

【加密規範】:

加密標準:

aes

加密演算法:

cbcblocksize:256bit(32byte)

keysize   :   256 (32byte)

padding  :   pkcs7

aes-cbc是一種分段解密的方式,即先把明文分段, 然後再加密, 引數blocksize 定義每段的大小, 支援 128bit  256 bit , 在分好段之後,最後的一段不一定滿乙個blocksize, 所以需要先對明文進行補碼在加密,pkcs7 的補碼方式, 後邊會提到。  金鑰的長度支援 128 192 和 256.

【pkcs7】

pkcs7 的演算法其實比較簡單, 完全可以自己封裝乙個函式:

第一步: 拿到明文的長度 len 和 blocksize (位元組) 

第二部: 算出最後一段需要補碼的長度  paddinglen =  len -  text % blocsize

第三部:  取得 ascii 碼 為補碼長度 paddinglen的字元, 用該字元把最後一段填滿就ok了, 詳情請參見我的php**

【php加密】

php要使用加密的函式, 必須安裝 mcrypt 的擴充套件。

NFS搭建以及rsync inotify實時備份

搭建nfs 假設有2臺server,分別是server1和server2。現在要在server1上安裝nfs,在server2上掛載該目錄。1.在兩台server上都安裝 yum install portmap nfs utils nfs utils lib 2.編輯server1檔案 etc ex...

Python MD5加密詳解以及多次加密的坑

在python中可以使用hashlib這個庫來使用md5加密 import hashlib在使用md5加密的使用要注意加密內容的編碼格式 import hashlib 匯入hash庫函式 md5 object hashlib.md5 建立乙個md5物件 md5 object.update b adm...

弄懂加密 簽名 證書以及HTTPS

這裡是一篇精煉而全面的介紹文章,把圍繞證書的那些概念都串起來了。本文將對一些細節做一些補充。首先,我們需要乙個清晰的定義來理解加密 金鑰 演算法這些概念 可以把加密演算法看作乙個複雜的函式變換,y f m,key y代表密文,即加密後得到的字串行,m代表明文,即待加密的字串行,key代表金鑰,f代表...