login  Naam:   Wachtwoord: 
Registreer je!
 Forum

aes_decrypt en SUM (Opgelost)

Offline eddaredevil - 21/09/2014 18:16
Avatar van eddaredevilPHP interesse Goedeavond,

Ik probeer een tabel met gecrypte bedragen op te tellen dmv SUM tijdens het uitlezen database.
Echter lukt dat niet zo  
Hier de code:
  1. SELECT AES_DECRYPT(bedrag, 'beetjezout') AS bedrag FROM DATA


Nu dacht ik, als ik nu sum(bedrag) of in de decrypt zet of bij as 'bedrag' of beide komt het wel goed, helaas krijg ik het zo niet voor elkaar. Iemand een suggestie hoe ik dit kan oplossen? Of beter, misschien hoe ik de bedragen kan gaan berekenen in php?

Alvast bedankt,

Ed

2 antwoorden

Gesponsorde links
Offline Thomas - 21/09/2014 19:02
Avatar van Thomas Moderator Hm, het eerst wat mij te binnen schiet is... wat voor (type) informatie krijg je terug?

Op mysql.com lees ik:
Citaat:
Because AES is a block-level algorithm, padding is used to encode uneven length strings and so the result string length may be calculated using this formula: ...
Wellicht doe je er verstandig aan om eerst eens te controleren wat voor informatie (en wat voor type) je precies terugkrijgt. Misschien kan het ook helpen om de bedragen te typecasten naar floats/integers als je er numerieke functies op los wilt laten? Ik denk haast dat je dit wel binnen MySQL zelf kunt oplossen, voor de conversie hoef je naar alle waarschijnlijkheid geen PHP in te schakelen, maar het zou kunnen helpen bij het debuggen om tot meer inzage te komen wat er aan de hand is.
Offline eddaredevil - 21/09/2014 20:18 (laatste wijziging 21/09/2014 20:28)
Avatar van eddaredevil PHP interesse Dank voor je antwoord!

Ik kan de bedragen zonder problemen decrypten en echo'en.
Het verwerken van de SUM lukt mij nog niet.

  1. // dit heb ik nu, komt netjes totaal bedrag uit. (als de DATA IN de DATABASE niet encrypt IS uiteraard :D)
  2. $stmt = $conn->prepare("SELECT bedrag, SUM(bedrag) FROM data");
  3.  
  4. //hier de decrypt zonder SUM (komt het juiste getal uit)
  5. $stmt = $conn->prepare("SELECT AES_DECRYPT(bedrag,'$salt') AS bedrag FROM data");
  6.  
  7. // het idee wat ik had om de decrypt met de SUM te regelen (krijg hier fout, sql query klopt niet)
  8. $stmt = $conn->prepare("SELECT AES_DECRYPT(SUM(bedrag), '$salt') as SUM(bedrag) FROM data");
  9.  
  10. //Zelfde maar dan anders (geen output)
  11. $stmt = $conn->prepare("SELECT AES_DECRYPT(SUM(bedrag), '$salt') as bedrag FROM data");
  12.  
  13. //nog een andere variant (error)
  14. $stmt = $conn->prepare("SELECT AES_DECRYPT(bedrag, '$salt') as SUM(bedrag) FROM data");
  15.  
  16. //en deze nog //hier komt het laatste getal/bedrag uit.
  17. $stmt = $conn->prepare("SELECT AES_DECRYPT(bedrag, '$salt') as bedrag, SUM(bedrag) FROM data");


En dit is de oplossing  
  1. $stmt = $conn->prepare("SELECT SUM(AES_DECRYPT(bedrag, '$salt')) as bedrag FROM data
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.215s