私の文字列を32の長さに手作業で埋め込むと、私のコードが動作します。
私の質問です:openSSLにデータを埋め込む方法はありますか?openssl_encryptを入力して必要なブロックサイズにする方法を教えてください。
ワーキング:
openssl_encrypt ("my baba is over the ocean1111111", 'AES-256-CBC', $MY_SECRET_KEY,OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING,$MY_IV);
が機能していない:
openssl_encrypt ("my baba is over the ocean", 'AES-256-CBC', $MY_SECRET_KEY,OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING,$MY_IV);
私は自己パディングにより、現在この問題を解決:ルーク公園が言ったように代わり、明示的に使用するようにopenssl_encrypt
を伝えるの、
$pad = 32 - (strlen("my baba is over the ocean") % 32);
$clear = "my baba is over the ocean" . str_repeat(chr($pad), $pad); //encrypt this string
AESのために必要なブロックサイズは、私が0のパディングのあなたの選択は、機械を混乱さ推測している16です。 – jww
現在パディングがゼロの場所の代わりに意図的にパディングスキームとしてPKCS5を使用できませんか? –
@ LukeParkには、それを行うための方法が組み込まれていますか? btw - > notice私はブロックに自分自身を埋め込み、ゼロではない –