1 回答

TA貢獻(xiàn)1794條經(jīng)驗 獲得超8個贊
在slowaes/php/aes_fast.php中,方法中 MixColumns 操作的反轉(zhuǎn)mixColumns
實現(xiàn)不正確,else-block 必須是:
...
} else {
for ($c = 0; $c < 4; $c++) {
$t[ $c] = self::$GEX[$state[$c]] ^ self::$GBX[$state[4+$c]] ^ self::$GDX[$state[8+$c]] ^ self::$G9X[$state[12+$c]];
$t[ 4+$c] = self::$G9X[$state[$c]] ^ self::$GEX[$state[4+$c]] ^ self::$GBX[$state[8+$c]] ^ self::$GDX[$state[12+$c]];
$t[ 8+$c] = self::$GDX[$state[$c]] ^ self::$G9X[$state[4+$c]] ^ self::$GEX[$state[8+$c]] ^ self::$GBX[$state[12+$c]];
$t[12+$c] = self::$GBX[$state[$c]] ^ self::$GDX[$state[4+$c]] ^ self::$G9X[$state[8+$c]] ^ self::$GEX[$state[12+$c]];
}
}
...
解密需要 MixColumns 操作的逆運算。
方法中也有錯字invMain
,第 3 行,i
必須用$i
.
通過這些更改,可以獲得預(yù)期的結(jié)果,可以在此處進(jìn)行驗證。警告也不再顯示。
我在這里提出了一個問題。請注意自述文件:該代碼更多地用于教學(xué)目的。在實踐中,應(yīng)該使用openssl_encrypt
/或類似的。openssl_decrypt
- 1 回答
- 0 關(guān)注
- 109 瀏覽
添加回答
舉報