1 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
在slowaes/php/aes_fast.php中,方法中 MixColumns 操作的反轉(zhuǎn)mixColumns
實(shí)現(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 操作的逆運(yùn)算。
方法中也有錯(cuò)字invMain
,第 3 行,i
必須用$i
.
通過這些更改,可以獲得預(yù)期的結(jié)果,可以在此處進(jìn)行驗(yàn)證。警告也不再顯示。
我在這里提出了一個(gè)問題。請(qǐng)注意自述文件:該代碼更多地用于教學(xué)目的。在實(shí)踐中,應(yīng)該使用openssl_encrypt
/或類似的。openssl_decrypt
- 1 回答
- 0 關(guān)注
- 102 瀏覽
添加回答
舉報(bào)