2017-10-18 4 views
0

mysql 5.7.10では、CESの256ビットモードでAES_Encryptを使用しているので、32バイトのキーを使用する必要があります。しかし、私はより長いキーを使用しますが、結果は異なりますので、MYSQLはどのようにしてより長いキーを考慮に入れますか?mysqlの長いキーをAES_ENCRYPTに送信するとどうなりますか

私は64ビット(512ビット)のキーとこの種の「動作」をMYSQLで使用したかったのですが、Chilkasoft crypt2libraryを使用すると64バイトのキーが機能しないため、結果はMySQLと同じではありません。

私は32バイト(私は64バイトキーを持っている理由は、キーを生成するためにSHA512を使用して)より長いキーを使用できますか?

答えて

0
bzero((char*) rkey,AES_KEY_LENGTH/8); 
for (ptr= rkey, sptr= key; sptr < key_end; ptr++,sptr++) 
{ 
    if (ptr == rkey_end) 
    ptr= rkey; /* Just loop over tmp_key until we used all key */ 
    *ptr^= (uint8) *sptr; 
} 

回答はhereです。基本的に、それはゼロの配列を作成し、キーをforeachし、それをxorsだけです。キーがどれだけ長くても、配列は常に32/16バイトになります。

関連する問題