2017-10-18 25 views
0

Dans mysql 5.7.10 j'utilise AES_Encrypt avec le mode cbc 256 bit donc je dois utiliser une clé de 32 octets. Mais j'utilise une clé plus longue, le résultat est différent, alors comment MYSQL prend-il en compte les clés plus longues? Parce que je voulais utiliser une clé de 64 octets (512 bits) et ce genre de "fonctionne" dans MYSQL, mais en utilisant Chilkasoft crypt2library la clé de 64 octets ne fonctionne pas, je veux dire le résultat n'est pas le même que de MySQL .Que se passe-t-il si j'envoie une clé plus longue à mysql AES_ENCRYPT qu'autorisée

Toutes les idées, puis-je utiliser une clé plus longue que 32 octets (j'utilise SHA512 pour générer la clé, c'est pourquoi j'ai une clé de 64 octets).

Répondre

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; 
} 

J'ai trouvé la réponse here. Fondamentalement, il crée un tableau de zéros et foreach la clé et juste le xors. Peu importe la longueur de la clé, le tableau sera toujours 32/16 octets.