bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


mysql_aes

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
mysql_aes [2024/02/02 00:03]
enric_mieza_sanchez [Accedir als vots d'un usuari]
mysql_aes [2024/02/02 17:47] (actual)
enric_mieza_sanchez [Exemple: encriptació per a vot secret]
Línia 1: Línia 1:
 ====== Encriptació AES a MySQL ====== ====== Encriptació AES a MySQL ======
  
-L'encriptació AES és reversible, a diferència de SHA2 que és destructiva (intencionadament). Els //strings// codificats en AES seran recuperables si es té la clau d'encriptació.+L'encriptació AES és reversible (permet desencriptar), a diferència de SHA2 que és una funció de //hash// destructiva. Els //strings// codificats en AES seran recuperables si es té la clau d'encriptació. 
 + 
 +En AES es fa servir la mateixa clau per encriptar i desencriptar, d'aquí que es classifiqui com a sistema d'encriptació de clau simètrica. Altre algorismes com RSA son de clau asimètrica, ja que requereixen una clau diferent per encriptar i desencriptar (sistema de clau pública/privada). Els asimètrics permeten certes utilitats però són computacionalment més feixucs. 
 + 
 +{{ https://protonvpn.com/blog/wp-content/uploads/2021/12/2022-01-pv-blog-what-is-aes.png?400 }}
  
 Referències: Referències:
Línia 12: Línia 16:
 ===== Exemple bàsic ===== ===== Exemple bàsic =====
  
-L'exemple més senzill seria el següent (ULL! el ''block_encryption_mode'' és important):+L'exemple més senzill seria el següent
 +<WRAP important> 
 +ULL! El ''block_encryption_mode = 'aes-256-ecb';'' és important 
 +</WRAP>
  
 <WRAP prewrap> <WRAP prewrap>
Línia 39: Línia 46:
 \\ \\
  
-===== Exemple: encriptació de vot =====+===== Exemple: encriptació per a vot secret =====
  
-En aquest exemple volem encriptar el vot en una aplicació de votacions per tal de que sigui secret. Això significa que ningú que no sigui l'usuari pot veure el què ha votat, ni tan sols l'administrador del sistema.+En aquest exemple volem **encriptar el vot en una aplicació de votacions per tal de que sigui secret**. Això significa que ningú que no sigui l'usuari pot veure el què ha votat, ni tan sols l'administrador del sistema.
  
-Tenim invitacions a l'enquesta, i enlloc de posar la opció de vot directament, la separarem en una taula de votacions i encriptarem el id_invitació amb una "sal" que només és accessible a l'usuari, ja que la codifiquem amb la pròpia contrasenya. El //sysadmin// no podrà relacionar la invitació amb la votació, però si podrà fer el recompte.+{{db_vota.png}}
  
 +Tenim invitacions a l'enquesta, i enlloc de posar la opció de vot directament, la separarem en una taula de votacions i **encriptarem el id_invitació amb una "sal" que només és accessible a l'usuari, ja que la codifiquem amb la pròpia contrasenya**. El //sysadmin// no podrà relacionar la invitació amb la votació, però sí que podrà fer el recompte.
 +
 +L'encriptació dle ID_INVITACIÓ la podem expressar així, concatenant el ID_INVITACIO amb la sal de l'usuari:
 +
 +  ID_INVITACIO_ENC = SHA2( ID_INVITACIO + SAL_USUARI )
 +
 +==== Creació de la BD de votacions ====
 <WRAP prewrap> <WRAP prewrap>
 <code mysql> <code mysql>
Línia 91: Línia 105:
 </code> </code>
 </WRAP> </WRAP>
- 
-\\ 
  
 Les dades quedarien així: Les dades quedarien així:
Línia 142: Línia 154:
  
 -- cerquem totes les votacions de l'usuari -- cerquem totes les votacions de l'usuari
-select i.id_usuari , v.id_opcio+select i.id_usuari , i.id_enquesta, v.id_opcio
 from vots v, invitacions i from vots v, invitacions i
 where i.id_usuari = @id_usuari where i.id_usuari = @id_usuari
Línia 151: Línia 163:
  
 <code> <code>
-+-----------+----------+ ++-----------+-------------+----------+ 
-| id_usuari | id_opcio | +| id_usuari | id_enquesta | id_opcio | 
-+-----------+----------+ ++-----------+-------------+----------+ 
-|         |      111 +|         2 |          22 |      222 
-+-----------+----------+++-----------+-------------+----------+
 </code> </code>
  
mysql_aes.1706832183.txt.gz · Darrera modificació: 2024/02/02 00:03 per enric_mieza_sanchez